在我的中settings.py,我具有以下内容:
settings.py
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' # Host for sending e-mail. EMAIL_HOST = 'localhost' # Port for sending e-mail. EMAIL_PORT = 1025 # Optional SMTP authentication information for EMAIL_HOST. EMAIL_HOST_USER = '' EMAIL_HOST_PASSWORD = '' EMAIL_USE_TLS = False
我的电子邮件代码:
from django.core.mail import EmailMessage email = EmailMessage('Hello', 'World', to=['user@gmail.com']) email.send()
当然,如果通过设置调试服务器python -m smtpd -n -c DebuggingServer localhost:1025,则可以在终端中看到该电子邮件。
python -m smtpd -n -c DebuggingServer localhost:1025
但是,我实际上如何不将电子邮件发送到调试服务器,而是发送到user@gmail.com?
阅读你的答案后,让我弄明白一点:
send_mail()
EmailMessage.send()
将电子邮件发送到真实的SMTP服务器。如果你不想建立自己的公司,则可以找到可以为你经营公司的公司,例如Google自己。
我将Gmail用作Django的SMTP服务器。比处理postfix或任何其他服务器容易得多。我不从事电子邮件服务器的管理。
在settings.py中:
EMAIL_USE_TLS = True EMAIL_HOST = 'smtp.gmail.com' EMAIL_PORT = 587 EMAIL_HOST_USER = 'me@gmail.com' EMAIL_HOST_PASSWORD = 'password'
注意:默认情况下,2016年Gmail不再允许这样做。你既可以使用Sendgrid之类的外部服务,也可以按照Google的本教程来降低安全性,但可以选择以下选项:https : //support.google.com/accounts/answer/6010255