【问题标题】:send mail with Django using EmailMessage class使用 EmailMessage 类使用 Django 发送邮件
【发布时间】:2013-04-09 03:38:33
【问题描述】:

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

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

我收到 [Errno 111] 连接被拒绝。这个错误的根源可能是什么?尝试在 Django 中发送带有附件的电子邮件时,是否有任何其他设置需要注意?非常感谢

[edit] 我忘了说我正在使用 django 提供的开发服务器

【问题讨论】:

    标签: python django email


    【解决方案1】:

    很可能,Django 无法连接到本地主机上的邮件服务器。如果您查看here,请查找 EMAIL_HOST、EMAIL_HOST_USER 和 EMAIL_HOST_PASSWORD

    【讨论】:

    • 我可以使用什么来代替 EMAIL_HOST 的默认“localhost”?
    • 当有电子邮件问题时,我会找到你去的人(他们将是系统管理员),并询问他们的连接信息。
    【解决方案2】:

    在 Django 中设置用于测试目的的电子邮件的最简单方法是将其设置为使用 SMTP 的 gmail 帐户。

    在 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
    

    对于生产,您需要在服务器上安装某种邮件服务器,或连接到远程邮件服务器。

    希望这在某种程度上有所帮助。

    【讨论】:

      【解决方案3】:

      就像 Chris Curvey 提到的那样,您必须按照此处所述配置您的邮件设置:http://docs.djangoproject.com/en/dev/ref/settings/?from=olddocs#available-settings

      使用哪个邮件主机取决于您的连接。如果您在工作,那么应该有一个系统管理员可以告诉您使用哪些信息。如果您在家,那么您的 ISP 可能有您应该使用的邮件服务器。

      如果您的计算机上有一个正常工作的电子邮件客户端,那么您还应该能够在“外发邮件”中看到正确的设置或类似的设置。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-03-07
        • 1970-01-01
        • 2011-05-08
        • 2015-09-28
        • 2021-05-30
        • 2016-06-10
        相关资源
        最近更新 更多