gpt4 book ai didi

google-app-engine - 从 gmail 上的 GAE dev_appserver 发送邮件时 SMTPSenderRefused

转载 作者:太空宇宙 更新时间:2023-11-03 15:30:19 27 4
gpt4 key购买 nike

这是我的电子邮件相关的 dev_appserver 选项:

--smtp_host=smtp.gmail.com --smtp_port=25 --smtp_user=me@mydomain.com --smtp_password="password"

现在,这仍然行不通,每次 Google 发布新的 dev_appserver 时,我都必须编辑 api/mail_stub.py 以使事情按照此 S/O answer 在本地运行.

但是,即使是这种解决方法现在也已停止工作。我得到以下异常:

SMTPSenderRefused: (555, '5.5.2 Syntax error. mw9sm14633203wib.0 - gsmtp', <email.header.Header instance at 0x10c9c9248>)

有比我聪明的人知道如何解决吗?

更新通过使用简单字符串 ( name@domain.com ) 的“普通”格式的电子邮件地址(例如发件人和收件人),而不是使用尖括号样式 ( Name <name@domain.com> ),我能够在 dev_appserver 上发送电子邮件。这在生产中不是问题:收件人和发件人电子邮件地址可以在 mail.send_mail 中使用尖括号称呼。我就 dev_appserver 和生产之间的这种不同行为提出了一个问题:https://code.google.com/p/googleappengine/issues/detail?id=10211&thanks=10211&ts=1383140754

最佳答案

看起来是因为“发件人”现在在开发服务器中存储为“email.header.Header”实例而不是字符串(我认为是从 SDK 1.8.3 开始)。

根据我的测试,当像“Name”这样的“From”字符串被传递到 smtplib.SMTP.sendmail 时,它解析字符串以查找尖括号内的部分(如果有)用作 SMTP 发件人,给出“”。但是,如果此参数是“email.header.Header”,则只是转换为字符串并在没有进一步解析的情况下使用它,给出“>”,从而导致我们看到的问题。

这是我刚刚在 issue tracker 上发布的补丁到 google/appengine/api/mail_stub.py 将此参数转换回字符串(对我有用):

--- google/appengine/api/mail_stub-orig.py      2014-12-12 20:04:53.612070031 +0000
+++ google/appengine/api/mail_stub.py 2014-12-12 20:05:07.532294605 +0000
@@ -215,7 +215,7 @@


tos = [mime_message[to] for to in ['To', 'Cc', 'Bcc'] if mime_message[to]]
- smtp.sendmail(mime_message['From'], tos, mime_message.as_string())
+ smtp.sendmail(str(mime_message['From']), tos, mime_message.as_string())
finally:
smtp.quit()

关于google-app-engine - 从 gmail 上的 GAE dev_appserver 发送邮件时 SMTPSenderRefused,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19680910/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com