我正在尝试在 Django 中使用 python 使用 G-Suite 帐户发送电子邮件。由于 Google 停止为新应用程序提供不太安全的 App 选项,因此我必须使用 Oauth2。但是当我开始通过 smtplib 发送电子邮件时,错误:
smtplib.SMTPSenderRefused: (530, b'5.7.0 Authentication Required. Learn more at\n5.7.0 https://support.google.com/mail/?p=WantAuthError q4sm8418287pfl.175 - gsmtp'
Run Code Online (Sandbox Code Playgroud)
并且查了一下参考资料,意思是“530,”5.7.0”,必须先发出STARTTLS命令。” 但是,我添加了“server.starttls()”。有人可以帮助我吗?非常感谢。
server = smtplib.SMTP('smtp.gmail.com', port=587)
server.ehlo('test')
server.starttls()
server.docmd('AUTH', 'XOAUTH2 ' + base64.b64encode(auth_string.encode()).decode("utf-8"))
server.sendmail(from_addr, to_addr, msg.as_string())
server.quit()
Run Code Online (Sandbox Code Playgroud)
小智 0
EMAIL_BACKEND="django.core.mail.backends.smtp.EmailBackend"
EMAIL_HOST_USER ='youremail@gmail.com'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_PASSWORD = 'yourpassword'
EMAIL_USE_TLS = True
Run Code Online (Sandbox Code Playgroud)
将其添加到您的设置中。在那之后 :
python manage.py shell
Run Code Online (Sandbox Code Playgroud)
您将进入Python shell。然后:
from django.core.mail import send_mail
Run Code Online (Sandbox Code Playgroud)
在 shell 上写入此命令,然后:
send_mail(
"django test mail",
"this is django test mail",
"your.email@gmail.com",
"recipient.email@example.com",
fail_silently=False
)
Run Code Online (Sandbox Code Playgroud)
如果输出等于:
1
,然后您通过 Gmail 发送电子邮件。
| 归档时间: |
|
| 查看次数: |
40798 次 |
| 最近记录: |