2017-08-31 6 views
0

J'ai quelques problèmes avec l'envoi de courrier électronique avec Python en utilisant mon propre serveur SMTP/IMAP. Voici le code:Envoyer des mails avec Python et un serveur IMAP/SMTP

import sys 
import imaplib 
import smtplib 
import email 
import email.header 
import datetime 

smtp_session = smtplib.SMTP(mail_server) 
try: 
    smtp_session.ehlo() 
except : 
    err = sys.exc_info()[0] 


message = """\ 
From: %s 
To: %s 
Subject: %s 

%s""" % (email_from, ", ".join([email_to]), "subject", "body") 
try: 
    smtp_session.sendmail(email_from, [email_to], message) 
    smtp_session.quit() 
except: 
    err = sys.exc_info()[0] 

if err != "" or err !=None: 
    NagiosCode = 2 
    NagiosMsg = "CRITICAL: Script execution failed : " + str(err) 

Ok donc pour les deux questions que j'ai: Quand j'envoie un mail de mon script j'ai besoin du courrier à apparaître dans le « éléments envoyés » diretory de ma boîte mail qui l'envoyer .

Deuxième question que j'ai: Lors de l'envoi de mon courrier que je surprends cette exception:

<class 'smtplib.SMTPException'> 

EDIT: trace d'exception:

File "checkIMAP_client.py", line 153, in <module> 
    smtp_session.login(login, password) 
    File "/usr/lib64/python2.6/smtplib.py", line 559, in login 
    raise SMTPException("SMTP AUTH extension not supported by server.") 
smtplib.SMTPException: SMTP AUTH extension not supported by server. 

EDIT: Il semble que mon serveur SMTP ne nécessite pas d'authentification . Mais le programme me renvoie toujours une exception vide.

Le code est mis à jour.

+0

À moins que votre serveur SMTP ne le fasse pour vous, vous devez vous connecter à votre serveur IMAP et "ENREGISTRER" l'email dans le dossier envoyé pour votre compte. En ce qui concerne l'exception immédiate que vous recevez - quoi d'autre cette attente vous dit-il devrait y avoir un numéro de description ou d'erreur pour indiquer quel est le problème spécifique - essayez de ne pas attraper l'exception et laissez-la stopper le programme ... –

+0

J'ai ajouté la trace. En ce qui concerne la partie IMAP, comment faire? Par ailleurs, je pourrais avoir besoin de supprimer ces emails avec Python, je ne pouvais pas trouver comment le faire dans la documentation de Python IMAPlib. – Aurelien

+0

Pour le bit IMAP - vous avez une bonne lecture de [RFC 3501] (https://tools.ietf.org/html/rfc3501) ... - consultez la commande STORE. –

Répondre

0

Donc, pour les deux questions que j'ai eu, je l'ai trouvé les réponses grâce aux commentaires ci-dessus:

Mettre mon e-mail envoyé via SMTP dans la boîte aux lettres à droite dans le répertoire Envoyé: https://pymotw.com/2/imaplib/ Rechercher « Uploading messages "

Exception: Je n'avais aucune méthode d'authentification définie sur mon serveur SMTP.