Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > fr.comp.lang.python > #2989
| X-Received | by 10.31.2.9 with SMTP id 9mr2621797vkc.21.1499961297863; Thu, 13 Jul 2017 08:54:57 -0700 (PDT) |
|---|---|
| X-Received | by 10.31.48.151 with SMTP id w145mr13820vkw.16.1499961297806; Thu, 13 Jul 2017 08:54:57 -0700 (PDT) |
| Path | csiph.com!feeder.erje.net!2.us.feeder.erje.net!feeder.usenetexpress.com!feeder1.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!m54no380431qtb.1!news-out.google.com!p50ni6226qte.0!nntp.google.com!v31no381013qtb.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail |
| Newsgroups | fr.comp.lang.python |
| Date | Thu, 13 Jul 2017 08:54:57 -0700 (PDT) |
| Complaints-To | groups-abuse@google.com |
| Injection-Info | glegroupsg2000goo.googlegroups.com; posting-host=193.48.45.201; posting-account=-tvaRAkAAAB6x-DHXkJKoXu2BG47ja0K |
| NNTP-Posting-Host | 193.48.45.201 |
| User-Agent | G2/1.0 |
| MIME-Version | 1.0 |
| Message-ID | <20b46076-b407-4d19-a3c4-e8d4754ba702@googlegroups.com> (permalink) |
| Subject | Smtplib, MIMEMultipart, sendmail et type de l'attribut payload |
| From | fg.hebert@gmail.com |
| Injection-Date | Thu, 13 Jul 2017 15:54:57 +0000 |
| Content-Type | text/plain; charset="UTF-8" |
| Content-Transfer-Encoding | quoted-printable |
| Lines | 44 |
| Xref | csiph.com fr.comp.lang.python:2989 |
Show key headers only | View raw
Bonjour,
j'essaye d'envoyer un message MIMEMultipart multipart/alternatives, avec deux versions du message, text/plain et text/html.
Je reçois lors de l'appel à sendmail, une exception :
-------------------------------------------
Traceback (most recent call last):
smtp.sendmail(settings.CONTACT_OWNER_EMAIL, [settings.CONTACT_OWNER_EMAIL], mltpart.as_string())
File "/usr/lib/python2.7/email/message.py", line 137, in as_string
g.flatten(self, unixfrom=unixfrom)
File "/usr/lib/python2.7/email/generator.py", line 83, in flatten
self._write(msg)
File "/usr/lib/python2.7/email/generator.py", line 108, in _write
self._dispatch(msg)
File "/usr/lib/python2.7/email/generator.py", line 134, in _dispatch
meth(msg)
File "/usr/lib/python2.7/email/generator.py", line 177, in _handle_text
raise TypeError('string payload expected: %s' % type(payload))
TypeError: string payload expected: <type 'list'>
--------------------------------------------
Après debug, il s'avère que la méthode _dispatch appelée sur le message principal multipart, cherche un handler adéquat au type/sous-type du message.
Si il ne trouve pas de handler déclaré chez lui-même, il appelle une méthode par défaut, dont le nom est produit à partir du type par défaut. Ce type par défaut est défini dans la classe parente email.message : 'text/plain'. Or la classe email.mime.multipart qui sous-classe email.message.Message ne redéfinit pas le type par défaut en multipart/xxxxx du coup le générateur s'attend à avoir une string comme payload et non pas une liste de strings qui composent le multipart.
D'où l'exception.
Est-ce qu'il s'agit d'un bug ou de quelque chose que je n'ai pas compris ?
Merci de votre aide,
Frédéric
Back to fr.comp.lang.python | Previous | Next | Find similar
Smtplib, MIMEMultipart, sendmail et type de l'attribut payload fg.hebert@gmail.com - 2017-07-13 08:54 -0700
csiph-web