在我的 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
设置调试服务器,我可以在终端中看到电子邮件。
但是,我实际上如何不将电子邮件发送到调试服务器,而是发送到 user@gmail.com?
看完你的回答,让我直说:
不能用localhost(简单的ubuntu pc)发邮件吗?
我认为在 django 1.3 中
send_mail()
有点被弃用,而使用EmailMessage.send()
代替?
最佳答案
我使用 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
关于python - 如何通过 Django 发送电子邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6367014/