3

我在“settings.py”文件中创建了以下条目

# Email setup
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'someone@someorg.com'
EMAIL_HOST_PASSWORD = 'thepassword'
EMAIL_PORT = 587

然后我在终端中发出以下命令:

email = EmailMessage('Hello','Have you received this mail?',to=['someone@gmail.com'])

我得到了1一个输出。

当我在“someone@gmail.com”查看邮箱时,邮箱中没有邮件。我错过了什么吗?

4

3 回答 3

3

您应该from_email通过调用设置参数(作为 kwarg 或 3rd arg)EmailMessage。或者在 settings.py 中定义:

DEFAULT_FROM_EMAIL = 'some.mail@inter.net'

from_email如果没有提供给 ,则将其视为默认值EmailMessage

在半相关的注释中,SERVER_EMAIL在 settings.py 中定义可能是一个好主意。这个与 Django 一起使用mail_admins并由mail_managersDjango 使用。

于 2012-08-11T19:36:15.130 回答
1

你所有的设置都是正确和完整的,你最后只是漏掉了一件事。您创建了一个邮件对象,现在email可以发送电子邮件对象,但您需要使用email.send(). 有关更多信息和示例,请查看 Django文档。此外,您可以使用send_mailwhich 自动创建电子邮件对象并发送它。

from django.core.mail import send_mail

mail_title = 'Hello!'
message = 'Have you received this mail?'
email = 'admin@company.com'
recipients = 'someone@gmail.com'

send_mail(mail_title, message, email, [recipients])
于 2012-08-12T10:39:20.583 回答
0

根据以下链接https://docs.djangoproject.com/en/1.3/topics/email/,您应该将电子邮件放在括号中。这意味着,它应该如下所示:

from django.core.mail.import send_mail

mail_title = 'Hello!'
message = 'Have you received this mail?'
email = admin@company.com
recipients = 'someone@gmail.com'

send_mail(mail_title, message, email, [recipients])
于 2013-11-11T15:10:13.260 回答