Пошлите электронное письмо активации пользователю

Как я сделал бы, чтобы проверить, существует ли электронное письмо actially? Наклон понимает, как сайты делают для отправки писем с уникальной ссылкой, на которую пользователи нажимают для проверки этого, он - владелец электронного письма = /

Сделайте 2 новыми столбцами названный activationkey и активированный и сохраните некоторую случайную строку, пошлите электронное письмо с activationkey и обновите пользователей, активированных =1, которые соответствуют той ссылке активации

register.php?a=activate&key=9cdfb439c7876e703e307864c9167a15

Какие-либо лучшие идеи?

6
задан mercator 7 May 2010 в 12:05
поделиться

3 ответа

Обычно я посылаю ссылку, содержащую идентификатор пользователя и ключ активации. Когда они посещают мой сценарий активации, если я нахожу совпадение, я активирую их.

При их регистрации я генерирую, возможно, 32 символа в верхнем/нижнем регистре буквенно-цифровых символов и устанавливаю их в качестве ключа активации. На этом этапе вы можете создать поле под названием "активировано", или вы можете предположить, что пользователь не активирован, если у него есть ключ активации.

uid |        email       | key
------------------------------------------------------------
001 | j.smith@mysite.com | e09141f3f5a17fed6222fc0279b9afdf
------------------------------------------------------------
002 | mary.tyler@abc.com | 
------------------------------------------------------------

Когда пользователь получает доступ к сценарию активации, просто проверьте предоставленный ключ вместе с предоставленным идентификатором и, если найдено совпадение, сотрите ключ из записи пользователя в файле (или обновите ваше логическое поле 'activated') и откройте двери.

Если предоставленный адрес электронной почты не существует, то без потерь. Вы можете регулярно удалять все строки с ключами после месяца бездействия.

16
ответ дан 8 December 2019 в 13:00
поделиться

Одна из альтернатив активационным ключам - просто отправить сгенерированный пароль на электронную почту пользователя, если пользователь войдет в систему, которую он активировал (и, конечно, должен иметь возможность изменить пароль на тот, который он предпочитает).

2
ответ дан 8 December 2019 в 13:00
поделиться

Нет простого способа проверить, действительно ли электронная почта существует программно. Есть несколько способов (pinging почтового сервера и т.д.), но ни один из них не работает с настройками каждого почтового сервера. Заставить пользователя активировать свою учетную запись по ссылке, как Вы описали, это лучший способ сделать это. Также, вы можете захотеть иметь какой-нибудь повторяющийся скрипт вроде cron-job, который удаляет неактивированных пользователей по истечении определенного периода времени (для этого потребуется еще одна колонка в вашей таблице - метка времени).

Это полезно, потому что если пользователь регистрируется, но никогда не активирует свою учетную запись и удаляет электронную почту, а вы используете его электронную почту в качестве id (просто пример), он никогда не сможет завершить активацию. Или же, если пользователь попытается войти в систему, вы можете просто повторно отправить письмо с активацией на этот адрес.

Просто убедитесь, что в сообщении указаны все заголовки (ответ на, с и т.д.), чтобы ваше письмо не было помечено как спам.

0
ответ дан 8 December 2019 в 13:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: