Я использую 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>
Очевидно, что это вызовет конфликты параметров, потому что оболочка не может знать, что является частью электронной почты отправителя, и это вызывает проблему.
Любая идеяКак решить эту проблему?Я хочу сохранить имена в письмах.
Кстати, это прекрасно работает, когда я загружаю свой код в AppEngine, но я хочу решить его локально, чтобы избежать необходимости каждый раз менять кодтестирование.