AppEngine与sendmail空间问题

时间:2010-12-23 19:42:38

标签: google-app-engine sendmail

我正在使用sendmail在本地运行时从AppEngine发送邮件(即dev_appserver.py)。这是我的代码:

mail.send_mail(
    sender="SenderName <sender@domain.name",
    to= "ReceiverName <receiver@domain.name>",
    subject=subject,
    body=text,
    html=html)

当我执行此代码时,使用正确的电子邮件和其他参数,我收到此错误:

/bin/sh: Syntax error: end of file unexpected
ERROR    2010-12-23 19:31:16,459 mail_stub.py:177] Error sending mail using sendmail: [Errno 32] Broken pipe

经过一番调查后发现,由于“发件人”和“收件人”电子邮件的语法错误(即管道损坏)。如果我只保留电子邮件(而不是名称),问题就解决了。这告诉我AppEngine正在将参数转储到sendmail而没有合适的引号。如下所示:

sendmail .... SenderName <sender@domain.name> ReceiverName <receiver@domain.com>

显然,这会导致参数冲突,因为shell无法知道这是发件人电子邮件的一部分,这导致了问题。

知道如何解决这个问题吗?我想在电子邮件中保留姓名。

顺便说一下,当我将代码上传到AppEngine时,这样可以正常工作,但我想在本地解决它,以避免每次测试时都要更改代码。

1 个答案:

答案 0 :(得分:2)

App Engine问题跟踪器中存在此问题,该跟踪器包含一个补丁,用于在http://code.google.com/p/googleappengine/issues/detail?id=3106

处添加地址周围的引号