python-2.7 - 在 GAE 上通过 Python 中的 smtp.gmail.com 发送电子邮件
问题描述
阅读 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
没有记录的是如何使用套接字库。
我可以通过在本地运行 python 脚本的 smtplib 发送电子邮件。
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] Permission denied ”
任何帮助将不胜感激。
解决方案
奇怪的是,该错误仅在尝试使用 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()
推荐阅读
- scala - 部分转置/枢轴数据帧
- python - 使用 Mac OS 在 Python 项目中导入错误 Openpose
- excel - 如何在出错时显示更改消息框然后继续代码
- jboss - 为什么 4.2.0 版没有 maven resteasy-jaxrs 包?
- android - 相机应用程序在权限对话框出现之前停止,在我授予权限后工作
- android - React-Native:渲染 JSON 对象的问题
- jquery - 如何通过jquery将sqlite数据库中的倒数第二,倒数第三的值等获取到html?
- wolfram-mathematica - 使用 Mathematica Eliminate 的“不是一个格式良好的方程”
- tensorflow - 当我使用 tf.keras.layers.BatchNormalization() 时,它会引发类型错误
- python - 编码新手,不知道为什么我得到一个奇怪的输出