Projet

Général

Profil

Bug #24409

envoi d'email à des domaines non ascii

Ajouté par Frédéric Péters il y a presque 6 ans. Mis à jour il y a 9 mois.

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

#1

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')}
#2

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'

Formats disponibles : Atom PDF