Отправить письмо активации пользователю - PullRequest
6 голосов
/ 07 января 2010

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

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

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

Есть идеи получше?

Ответы [ 3 ]

16 голосов
/ 07 января 2010

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

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

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

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

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

2 голосов
/ 07 января 2010

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

0 голосов
/ 07 января 2010

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...