通过Python中的smtp.gmail.com在GAE上发送电子邮件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过Python中的smtp.gmail.com在GAE上发送电子邮件相关的知识,希望对你有一定的参考价值。

阅读Google的文档后,应该可以通过smtp.gmail.com在GAE标准的端口465或587上发送电子邮件。参考:https://cloud.google.com/appengine/docs/standard/python/sockets/#limitations_and_restrictions_if_lang_is_java_java_7_runtime_only_endif

没有记录的是如何使用套接字库。

我可以通过smtplib在本地运行python脚本发送电子邮件。

server = smtplib.SMTP_SSL("smtp.gmail.com", 587)
server.ehlo()
server.login(gmail_access["email"], gmail_access["password"])
server.sendmail(gmail_access["email"], report.owner, msg.as_string())
server.close()

当尝试使用GAE的dev_appserver运行代码时,我得到了非描述错误“[Errno 13]权限被拒绝”

任何帮助将不胜感激。

答案

奇怪的是,只有在尝试使用dev_appserver.py在本地运行代码时才会出现错误。在将代码部署到App Engine后,它工作正常。

import socket
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

msg = MIMEMultipart("alternative")
msg["Subject"] = subject
msg["From"] = gmail_access["email"]
msg["To"] = report.owner
msg.attach(MIMEText(body, "html"))

server = smtplib.SMTP_SSL("smtp.gmail.com", 465)
server.ehlo()
server.login(gmail_access["email"], gmail_access["password"])
server.sendmail(gmail_access["email"], report.owner, msg.as_string())
server.close()

以上是关于通过Python中的smtp.gmail.com在GAE上发送电子邮件的主要内容,如果未能解决你的问题,请参考以下文章

无法通过 telnet 使用 smtp.gmail.com

通过命令行连接到 smtp.gmail.com

通过 smtp.gmail.com 发送 php 邮件连接

Django 通过 smtp.gmail.com 发送电子邮件的问题

wamp sendmail 无法通过 smtp.gmail.com:587 发送电子邮件 [重复]

Spring Boot - 无法连接到 SMTP 主机:smtp.gmail.com,端口:25,响应:421