提问人:fr0zie 提问时间:9/4/2023 更新时间:9/4/2023 访问量:146
使用 Django 和 Gmail 后端发送电子邮件
Send email using Django and Gmail backend
问:
我正在努力使用 Gmail 后端使用自定义域发送电子邮件。
EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend"
EMAIL_HOST = "smtp.gmail.com"
EMAIL_HOST_USER = os.environ["EMAIL_HOST_USER"]
EMAIL_HOST_PASSWORD = os.environ["EMAIL_HOST_PASSWORD"]
EMAIL_PORT = 587
EMAIL_USE_TLS = True
email = EmailMessage(
subject,
content,
"my[email protected]",
[customer.email]
)
email.send()
我已经使用自定义域创建了一个 Google 帐户并生成了一个应用密码,但是当使用自定义域时,我得到:EMAIL_HOST_USER
(535, b'5.7.8 Username and Password not accepted. Learn more at https://support.google.com/mail/?p=BadCredentials')
EMAIL_HOST_USER = os.environ["EMAIL_HOST_USER"] # [email protected]
然后我尝试使用 gmail.com 域的 Google 帐户,这次它有效:
EMAIL_HOST_USER = os.environ["EMAIL_HOST_USER"] # [email protected]
因此,我需要发件人的邮件与.
我尝试在 Google 中添加辅助邮件地址并使用,但它似乎没有改变任何东西。[email protected]
DEFAULT_FROM_EMAIL = "[email protected]"
我也尝试了这篇文章中的解决方案,同样的问题。
答:
请按照下列步骤操作
设置 Gmail 帐户应用密码 为了让 Django 能够通过 Gmail 发送电子邮件并遵守 Gmail 的发送策略,您需要设置安全性较低的应用程序访问权限并创建应用程序密码。
如果您未设置安全性较低的应用访问权限,则在尝试发送电子邮件时将收到 SMTPAuthenticationError。
导航到 myaccount.google.com/lesssecureapps 并打开 less 安全应用程序的选项。
启用 2 因素身份验证。这是必需的,以便使用 安全性较低的应用。
导航到 myaccount.google.com/security 并向下滚动到 “登录 Google”部分。点击“应用密码”。
系统会要求您输入个人 Gmail 帐号密码。下一个 点击“选择应用”,输入你的 Django 应用的名称。使用 与你在终端中为应用指定的名称相同 (DjangoEmailServer.)单击“生成”。
现在,您可以将生成的应用程序密码复制到 EMAIL_HOST_PASSWORD settings.py 文件中的值。
从 django.core.mail 导入send_mail 从 django.conf 导入设置
send(subject, message, recipients): send_mail( subject=subject, message=message, from_email=settings.EMAIL_HOST_USER, recipient_list=recipients)
`
评论