2010-07-27 9 views
4

J'utilise le script ci-dessous pour m'envoyer un e-mail, le script fonctionne bien sans erreur mais je ne reçois pas physiquement un email.Python: Email problème

import smtplib 

sender = '[email protected]' 
receivers = ['[email protected]'] 

message = """From: From Person <[email protected]> 
To: To Person <[email protected]> 
Subject: SMTP e-mail test 

This is a test e-mail message. 
""" 

try: 
    smtpObj = smtplib.SMTP('localhost') 
    smtpObj.sendmail(sender, receivers, message)   
    print "Successfully sent email" 
except SMTPException: 
    print "Error: unable to send email" 

EDIT

Le script est nommé test.py

+4

Si jamais je physiquement reçu un e-mail, je dois avoir une conversation avec mon psy. –

Répondre

4

Pourquoi vous utilisez localhost comme SMTP?

Si vous utilisez hotmail vous devez utiliser le compte hotmail, indiquez le mot de passe, entrez le port et le serveur SMTP, etc.

est tout ici dont vous avez besoin: http://techblissonline.com/hotmail-pop3-and-smtp-settings/

modifier: Voici un exemple si vous utilisez gmail:

def mail(to, subject, text): 
    msg = MIMEMultipart() 

    msg['From'] = gmail_user 
    msg['To'] = to 
    msg['Subject'] = subject 

    msg.attach(MIMEText(text)) 

    part = MIMEBase('application', 'octet-stream') 
    Encoders.encode_base64(part) 
    msg.attach(part) 

    mailServer = smtplib.SMTP("smtp.gmail.com", 587) 
    mailServer.ehlo() 
    mailServer.starttls() 
    mailServer.ehlo() 
    mailServer.login(gmail_user, gmail_pwd) 
    mailServer.sendmail(gmail_user, to, msg.as_string()) 
    # Should be mailServer.quit(), but that crashes... 
    mailServer.close() 
+1

Je reçois un NameError: Multipart n'est pas défini – Phil

+0

@Phil L'avez-vous importé correctement? à partir de email.mime.multipart importer MIMEMultipart – krs1

+0

Désolé il y avait une faute de frappe dans l'importation – Phil

1

Jeff Atwood blog post du dernier Avril peut être d'une certaine aide.

0

Le serveur SMTP "localhost" ne fonctionnera pas avec Hotmail. Vous devrez coder en dur votre mot de passe afin que Hotmail puisse vous authentifier également. Le SMTP par défaut pour Hotmail est « smtp.live.com » sur le port 25. Essayez:

import smtplib 

sender = '[email protected]' 
receivers = ['[email protected]'] 
password = 'your email password' 

message = """From: From Person <[email protected]> 
To: To Person <[email protected]> 
Subject: SMTP e-mail test 

This is a test e-mail message. 
""" 

try: 
    smtpObj = smtplib.SMTP("smtp.live.com",25) 
    smtpObj.ehlo() 
    smtpObj.starttls() 
    smtpObj.ehlo() 
    smtpObj.login(sender, password) 
    smtpObj.sendmail(sender, receivers, message)   
    print "Successfully sent email" 
except SMTPException: 
    print "Error: unable to send email"