【发布时间】:2020-03-05 05:12:26
【问题描述】:
我正在尝试使用 Django 通过 smtp 发送电子邮件。当我尝试发送电子邮件时,我没有收到任何错误,但我的应用程序没有响应并且一直在等待发送电子邮件,但显然它什么也没发送。
我尝试过使用 smtp gmail 和 smtp hotmail,但它不起作用。我已经检查了我的 Windows 防火墙,但它再次无法正常工作。我尝试使用 Python shell 发送电子邮件,但它什么也没发送。
我认为我已经尝试了我在 Stack Overflow 的其他帖子中看到的几乎所有内容。
settings.py:
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.office365.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'myemail@hotmail.com'
EMAIL_HOST_PASSWORD = 'mypassword'
SERVER_EMAIL = EMAIL_HOST_USER
mails.py:
from django.conf import settings
from django.template.loader import get_template
from django.core.mail import EmailMultiAlternatives
class Mail:
@staticmethod
def send_complete_order(orden, user):
subject = 'order sent'
template = get_template('orders/mails/complete.html')
content = template.render({
'user': user
})
message = EmailMultiAlternatives(subject, 'Testing',
settings.EMAIL_HOST_USER, [user.email])
message.attach_alternative(content, 'text/html')
message.send()
views.py:
@login_required(login_url='login')
def complete(request):
cart = get_or_create_cart(request)
order = get_or_create_order(cart, request)
if request.user.id != order.user_id:
return redirect('carts:cart')
order.complete()
Mail.send_complete_order(order, request.user)
destroy_cart(request)
destroy_order(request)
messages.success(request, "order complete")
return redirect('index')
【问题讨论】:
-
添加您的电子邮件发送 django 代码
-
嗨,我刚刚添加了代码。
-
尝试发送自己的电子邮件通常是不可靠的。可以试试 MailChimp 或 MailGun 等吗?