jeudi 20 septembre 2012

Python et Gmail

Durant l'écriture de mon intelligence artificielle, j'ai voulu lui rajouter une interaction avec les mails. Je voulais que mon IA puisse envoyer et recevoir des mails. En python rien de plus simple.

Pour vérifier vos mails gmail, 8 lignes de code suffisent, cette fonction retourne le nombre de mails non lu dans votre boite de réception:
import imaplib
def checkGmail():
    obj = imaplib.IMAP4_SSL('imap.gmail.com','993')
    obj.login('monmail@gmail.com','monMotDePasse')
    obj.select()
    rep=obj.search(None,'UnSeen')
    nb=len(str(rep[1]).split(" "))
    return nb



Pour envoyer des mails, cela dépend. Il existe deux formats: HTML et Text. Je publierai un peu plus tard la gestion des mails HTML. Pour le moment on va faire simple et les mails en mode Text sont déjà un bon début. La fonction est là encore assez courte:
import smtplib
def sendTextMail(subject,content,dest):
    fromaddr = "monmail@gmail.com"
    smtp = smtplib.SMTP('smtp.gmail.com','587')
    smtp.ehlo()
    smtp.starttls()
    smtp.login('monmail@gmail.com','monMotDePasse')
    msg=MIMEText(content)
    smtp.sendmail(fromaddr,dest,content)
    smtp.close()
    return 0
Ce qui est dommage avec les mails Text, c'est qu'il est assez complexe de gérer le sujet du mail. De plus, le destinataire est marqué en inconnu bien que celui-ci reçoive le mail. La conséquence est que le mail arrive souvent en spam.

1 commentaire: