【问题标题】:send_mail() in django is not sending. Command line sendmail isdjango 中的 send_mail() 没有发送。命令行 sendmail 是
【发布时间】:2021-02-09 02:25:48
【问题描述】:

我有一台 linux 笔记本电脑。我正在尝试在我的 django 应用程序中测试一些电子邮件功能,但我似乎无法让 send_mail 或 EmailMessage 工作。

这是我的发送邮件:

def get(self, request, *args, **kwargs):
        send_mail(
            'Subject here',
            'Here is the message.',
            'me@pop-os.domain',
            ['me@gmail.com'],
            fail_silently=False,
        )
        return HttpResponse('Message sent')

当我转到该页面时,它会在终端中打印一条成功的电子邮件:

Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: Subject here
From: me@po-pos.domain
To: me@gmail.com
Date: Mon, 26 Oct 2020 19:13:36 -0000
Message-ID: <160373961632.78488.2486155271127153156@pop-os.localdomain>

Here is the message.

我从未在我的 gmail 中收到邮件。我已更改为 From 和 To 以掩盖实际的电子邮件地址。我可能做错了什么?如果我像这样使用命令行发送邮件,它可以工作。

sendmail user@example.com /email.txt

【问题讨论】:

  • 您将此标记为sendmail。你真的在使用 UNIX 程序sendmail
  • 我什么也没得到,所以我安装了 sendmail。然后我说在 django 中收到 smtp 错误,所以我假设它需要 sendmail

标签: django sendmail


【解决方案1】:

您可能需要在settings.py 中添加一些行

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'

EMAIL_HOST = 'smtp.pop-os.domain'
EMAIL_HOST_USER = 'your-mail@pop-os.domain'
EMAIL_PORT = 465
EMAIL_HOST_PASSWORD = 'password'
EMAIL_USE_SSL = True

【讨论】:

  • 我确实有这些设置。如何验证我的 smtp 端口?
  • 当您从me@pop-os.domain 发送邮件时,您还需要在设置中拥有这些域的登录名和密码。并在文档中查找 smtp 端口
猜你喜欢
  • 1970-01-01
  • 2016-09-24
  • 2017-05-03
  • 2019-06-29
  • 1970-01-01
  • 2017-03-30
  • 2020-04-03
  • 2014-02-09
  • 1970-01-01
相关资源
最近更新 更多