我发现 Zoho 不喜欢标准的 django.core.mail.send_mail 方法。该问题似乎与内容类型有关。有多种方法可以解决这个问题,我的方法是切换到 EmailMessage,它具有更丰富的界面并允许您在标头中传递 Content-type。
从此切换:
from django.core import mail
mail.send_mail(subject='Hello',
message='Body goes here',
from_email='user@example.com',
recipient_list=['user@example.com'])
对此:
from django.core.mail import EmailMessage
email = EmailMessage(
subject='Hello',
body='Body goes here',
from_email='user@example.com',
to=['user@example.com'],
reply_to=['user@example.com'],
headers={'Content-Type': 'text/plain'},
)
email.send()
其他 Zoho 邮件设置:
EMAIL_HOST = 'smtp.zoho.com'
EMAIL_HOST_USER = 'user@example.com'
EMAIL_HOST_PASSWORD = 'password'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_USE_SSL = False
这解决了我的 Zoho 邮件发送问题,并且与 django-yubin 等其他队列插件兼容。