2010-12-23 85 views
0

我使用sendmail在本地運行時(即dev_appserver.py)能夠從AppEngine發送郵件。這裏是我的代碼:AppEngine與sendmail空間問題

mail.send_mail(
    sender="SenderName <[email protected]", 
    to= "ReceiverName <[email protected]>", 
    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 <[email protected]> ReceiverName <[email protected]> 

顯然,這將導致參數衝突,因爲shell不能知道是發件人的電子郵件的一部分,這是造成問題的原因。

任何想法如何解決這個問題?我想保留郵件中的名字。

順便說一句,當我將我的代碼上傳到AppEngine時,這很有效,但我也想在本地解決它,以避免每次測試時都要更改代碼。

回答