2010-04-29 12 views
3

Je veux envoyer un e-mail avec une pièce jointe en utilisant le code suivant (Python 3.1) (grandement simplifié pour montrer l'exemple)Email problème de fixation

from email.mime.multipart import MIMEMultipart 
from email.mime.text import MIMEText 

msg = MIMEMultipart() 
msg['From'] = from_addr 
msg['To'] = to_addr 
msg['Subject'] = subject 
msg.attach(MIMEText(body)) 

fp = open(att_file) 
msg1 = MIMEText(fp.read()) 
attachment = msg1.add_header('Content-Disposition', 'attachment', filename=att_file) 
msg.attach(attachment) 

# set string to be sent as 3rd parameter to smptlib.SMTP.sendmail() 
send_string = msg.as_string() 

L'objet de fixation email.mime.text » retourne MSG1 .MIMEText 'object at', mais lorsque la ligne msg1.add_header (...) s'exécute, le résultat est None, d'où le basculement du programme dans msg.as_string() car aucune partie de la pièce jointe ne peut avoir une valeur None. (Traceback montre que l'objet '' NoneType 'n'a pas d'attribut' get_content_maintype '"à la ligne 118 de _dispatch dans generator.py, de nombreux niveaux à partir de msg.as_string())

Quelqu'un at-il une idée de la cause du problème? être? Toute aide serait appréciée.

Alan Harris-Reid

Répondre

3

Utilisation:

msg.attach(msg1) 
+0

Merci mg - fonctionne bien maintenant. Un grand merci - Alan –

+0

@Alan Harris-Reid: Si ma réponse vous a aidé, alors que c'est trivial, vous pouvez l'accepter. –

+0

Comment l'accepter? Voulez-vous dire «vote-up»? Si c'est le cas, je ne peux pas pour l'instant parce que le vote exige 15 points de réputation, ce que je n'ai pas encore. (Excusez mon ignorance, mais je suis nouveau à tout cela.). Cordialement. –