2010-10-06 1 views
2

В моем приложении Python, я хотел бы иметь возможность отправлять почту на адреса как っていった@example.jp, [email protected] или даже عرض@وزارة-الأتصالات.مصر, которые вполне допустимы.Отправить по электронной почте интернационализированного адрес электронной почты с Python/SMTPlib

При передаче адреса как UTF-8 я получаю исключение UnicodeDecodeException. Если я кодирую адрес с address.encode('utf-8'), ошибки Python, но я получаю сообщение об отказе, объясняя Diagnostic-Code: smtp; 501 Malformed RCPT TO: - psmtp.

Какой способ заставить все работать?

Спасибо.

+0

Насколько я знаю, не-ascii-символы в локальной части (до «@») не допускаются. Доменная часть (после «@») должна быть кодирована IDN, если не-ascii. Не знаю о питоне. –

+0

символы не-ascii в локальной части разрешены и действительны. Ну, почти все действительно действует до @, на самом деле. – Pierre

+0

Посмотрите на этот ответ: http://stackoverflow.com/a/9527510/633961 – guettli

ответ

2

Убедитесь, что сервер, на котором вы говорите, содержит UTF8SMTP в своем ответе EHLO. В противном случае он не поддерживает rfc5336. Вы можете сказать, используя telnet или netcat для подключения к серверу и притворяясь SMTP-клиентом.

+0

Да, спасибо. Похоже, что упакованная версия Postfix в Ubuntu не поддерживает эту функцию ... – Pierre

Смежные вопросы