无法发送Django电子邮件

时间:2017-06-13 19:58:32

标签: python django email

我正在尝试在用户从其他用户收到我的应用程序中的消息时发送电子邮件通知。但由于某种原因,电子邮件不会发送。电子邮件帐户在服务器上正确配置。

我没有任何错误。 Django版本1.10.6。

settings.py

EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
EMAIL_USE_TLS = True
EMAIL_HOST = 'my.smtp.host'
EMAIL_PORT = 25
EMAIL_HOST_USER = 'myemailaccount@mydomain.com'
EMAIL_HOST_PASSWORD = 'mypassword'

DEFAULT_FROM_EMAIL = EMAIL_HOST_USER

views.py

from django.core.mail import EmailMessage

class View(TemplateView):
    def post(self, request, pk):
        form = MessagesForm(request.POST)
        if form.is_valid():
            message = form.save(commit=False)
            message.sender = request.user
            message.reciever = User.objects.get(pk=pk)

            reciever_id = User.objects.get(pk=pk).pk

            message.save()

            email = EmailMessage('Hello', 'World', to=[message.reciever.email])

            if message.reciever.userprofile.email_notifications:
                print('message should be send')
                email.send()

            form = MessagesForm()
            return redirect(reverse('user_messages:user_messages', args=[reciever_id],))

        args = {'form': form}
        return render(request, self.template_name, args)

服务器日志

message should be send
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Subject: Hello
From: mail@from
To: mail@to
Date: Tue, 13 Jun 2017 20:09:49 -0000
Message-ID: <something....>

World
-------------------------------------------------------------------------------

1 个答案:

答案 0 :(得分:0)

来自docs

  

而不是发送真正的电子邮件,控制台后端只是编写   将被发送到标准输出的电子邮件。默认情况下   控制台后端写入stdout。您可以使用不同的流   对象通过在构造时提供stream关键字参数来实现   连接。

使用:

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
相关问题