如何在 Django 中发送电子邮件

How Email Sent In Django

我有setting.py

# Email settings
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'email@gmail.com'
EMAIL_HOST_PASSWORD = 'pass'
EMAIL_PORT = 587

电子邮件方法在admin.py

send_mail(
            'Subject here',
            'Here is the message.',
            'from@gmail.com',
            ['to@gmail.com'],
            fail_silently=False,
        )

但是报错 SMTP AUTH extension not supported by server. 我如何解决这个问题,在 localhost

上工作

它适用于端口 465 和电子邮件 ssl true

EMAIL_PORT = 465
EMAIL_USE_SSL = True

尝试像这样创建自定义发送电子邮件文件

import smtplib
from email.message import EmailMessage

# Send Email Function
def send(to):
    email = EmailMessage()
    email['from'] = 'Test'
    email['to'] = to
    email['subject'] = 'Hello World'

    with smtplib.SMTP(host='smtp.gmail.com', port=587) as smtp:
      smtp.ehlo()
      smtp.starttls()
      smtp.login('user', 'password')
      smtp.send_message(email)

对于 TLS:

EMAIL_USE_TLS = True
EMAIL_PORT = 587