Мне любопытно, есть ли способ отправить активированную электронную почту с именем пользователя, паролем, используя django-registration. Сначала я подумал об изменении формы регистрации, но мне нужен пример.отправить активировать электронную почту с django-registration
ответ
django-registration использует следующий код, внутренне, для обработки отправки электронной почты:
send_mail(subject, message, settings.DEFAULT_FROM_EMAIL, [self.user.email])
Если вы хотите работать, вы должны указать DEFAULT_FROM_EMAIL значения в вашем settings.py.
Кроме того, обратите внимание на следующее:
почта отправляется с использованием SMTP хост и порт, указанный в EMAIL_HOST и настройки EMAIL_PORT. Настройки EMAIL_HOST_USER и EMAIL_HOST_PASSWORD, если установлено, используются для проверки подлинности на сервере SMTP , и настройка EMAIL_USE_TLS управления используется ли защищенное соединение .
Таким образом, чтобы дать пример, вот что я использовал в файле settings.py для использования учетной записи Gmail:
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 465
EMAIL_USE_TLS = True
EMAIL_HOST_USER = '[email protected]'
EMAIL_HOST_PASSWORD = 'my_emails_password'
django-registration должны затем иметь возможность отправлять сообщения электронной почты.
И, как раз для записи, всем, кто настраивает электронную почту - ** не делайте ошибку, я делал, используя кавычки вокруг порта, как в 'EMAIL_PORT = '587''. Это стоило мне нескольких часов отладки ... –
благодаря вашему чае, я дважды проверил мою ошибочную конфигурацию электронной почты - только чтобы обнаружить, что 4 строки после настройки с помощью учетной записи gmail, я установил ее для какой-то чужих локальных учетных записей ! Проблема? Решаемые. – bharal
Я думаю, мы должны использовать 'EMAIL_PORT = 587', когда' EMAIL_USE_TLS = True' –
EMAIL_PORT = 465 работал год назад. Теперь вам нужно использовать порт 587 с gmail. Причина: Django не поддерживает SMTP с SSL с самого начала. Поддерживается только команда STARTTLS ПОСЛЕ ПОЛЬЗОВАТЕЛЬСКОГО ПОЛЬЗОВАТЕЛЯ. Gmail, однако, больше не поддерживает эту опцию на порту 465.
Надеюсь, это поможет кому-то. После устранения неполадок в течение получаса, я понял, что я должен был явно указать это, а также при использовании Джанго-регистрации -
EMAIL_BACKEND = «django.core.mail.backends.smtp.EmailBackend»
django-register-activate реализован аналогичная функциональность, как django-регистрация. В основном он предоставляет код для регистрации пользователя, проверки и активации электронной почты, входа пользователя и выхода пользователя.
Если вам нужны примеры для реализации собственного кода, вы можете проверить views.py и forms.py в register_activate, чтобы получить некоторые подсказки.
Надеюсь, что ответ поможет. Дайте мне знать, если у вас возникнут дополнительные вопросы.
НЕ посылайте пароли пользователей по электронной почте. –