使用Django的EmailMessage类发送邮件

1 投票
3 回答
3044 浏览
提问于 2025-04-16 16:13

我正在尝试使用Django提供的EmailMessage类发送电子邮件。我的views.py中的代码如下:

email = EmailMessage('Hello', 'My_message ', 'my@mail.com', [email])
email.attach_file('file.jpg')
email.send()

我遇到了一个错误:[Errno 111] 连接被拒绝。这个错误可能是什么原因呢?在Django中发送带附件的电子邮件时,还有哪些额外的设置是我需要注意的?非常感谢!

[编辑] 我忘了提,我是在Django提供的开发服务器上工作的。

3 个回答

-1

正如Chris Curvey提到的,你需要按照这里的说明来配置你的邮件设置:http://docs.djangoproject.com/en/dev/ref/settings/?from=olddocs#available-settings

使用哪个邮件主机取决于你的网络连接。如果你在公司工作,应该有个系统管理员能告诉你需要哪些信息。如果你在家里,那么你的网络服务提供商(ISP)可能有一个邮件服务器,你应该使用它。

如果你电脑上有一个能正常工作的邮件客户端,你也可以在“发件邮件”或者类似的设置中找到正确的配置。

0

在Django中,最简单的方式是把测试用的邮箱设置成一个Gmail账号,并使用SMTP。

在settings.py文件中,只需要添加以下内容。

EMAIL_HOST = 'smtp.gmail.com'

EMAIL_HOST_USER = 'user@gmail.com'

EMAIL_HOST_PASSWORD = 'your-password'

EMAIL_PORT = 587

EMAIL_USE_TLS = True

如果是上线使用,你就需要在你的服务器上安装一个邮件服务器,或者连接到一个远程的邮件服务器。

希望这些信息能对你有所帮助。

1

很可能,Django无法连接到本地的邮件服务器。如果你查看这里,可以找到EMAIL_HOST、EMAIL_HOST_USER和EMAIL_HOST_PASSWORD这些设置。

撰写回答