Bug #24409
envoi d'email à des domaines non ascii
Statut:
Fermé
Priorité:
Normal
Assigné à:
-
Version cible:
-
Début:
10 juin 2018
Echéance:
% réalisé:
0%
Temps estimé:
Patch proposed:
Non
Planning:
Non
Description
Failed to send mail to ['xxx@num\xc3\xa9ricable.fr']
>>> domain = u"numéricable.fr".encode('idna') >>> domain 'xn--numricable-d7a.fr' >>> import DNS >>> DNS.ParseResolvConf() >>> DNS.mxlookup(domain) [(10, 'mta.pro.numericable.fr')]
De https://bugs.python.org/issue20083 ce n'est toujours pas gagné. On devrait filtrer et convertir en idna les adresses avant de les passer à smtplib.
Historique
Mis à jour par Frédéric Péters il y a presque 6 ans
Aussi,
>>> s = smtplib.SMTP('localhost') >>> s.sendmail('test@entrouvert.com', ['xxx@numéricable.fr'], '') Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib/python2.7/smtplib.py", line 747, in sendmail raise SMTPRecipientsRefused(senderrs) smtplib.SMTPRecipientsRefused: {'xxx@num\xc3\xa9ricable.fr': (501, '<xxx@num\xc3\xa9ricable.fr>: malformed address: \xc3\xa9ricable.fr> may not follow <xxx@num')}
Mis à jour par Frédéric Péters il y a 9 mois
- Statut changé de Nouveau à Fermé
- Planning mis à Non
C'est corrigé avec le passage par le backend django (#36977), celui-ci fait :
recipients = [sanitize_address(addr, encoding) for addr in email_message.recipients()]
et ça convertit correctement les domaines en idna :
In [5]: sanitize_address('xxx@numéricable.fr', 'utf-8') Out[5]: 'xxx@xn--numricable-d7a.fr'