> Modules standards > Modules pour internet > Manipulation des mails
Manipulation des mails
Envoi et lecture de mails
Envoi de mail :
- Utiliser le package smtplib : import smtplib.
- envoi d'un mail simple :
import smtplib
import email.mime.text
smtp = smtplib.SMTP('serveurmail.domain.com') # le nom du serveur de mail
msg = email.mime.text.MIMEText('Le contenu du mail')
msg['Subject'] = 'le sujet du mail'
msg['From'] = 'expediteur@domain.com' # pour l'affichage
msg['To'] = 'destinataire@otherDomain.com' # pour l'affichage
msg['Cc'] = 'destinataire2@otherDomain.com' # pour l'affichage
# envoi du mail avec l'expediteur et les destinataires
smtp.sendmail('expediteur@domain.com',
['destinataire@otherDomain.com', 'destinataire2.com'],
msg.as_string())
smtp.quit()
- s'il y a un problème, une exception est générée.
Lecture de mails sur un serveur imap :
- on peut utiliser le package imaplib et aussi le package email.
- Lecture de la liste de mails avec leur expéditeur et leur sujet :
import imaplib
import email
imap = imaplib.IMAP4('serveurmail.domain.com')
imap.login('monLogin', 'monPassword')
(status, res) = imap.list()
# renvoie ('OK', ['nombre de messages']) ou sinon ('NO', ['message erreur'])
(status, numberMessages) = imap.select('INBOX')
print (status, 'Nombre de messages = ', numberMessages)
# renvoie par exemple ('OK', ['1 2 3 4 5']) qui sont les numéros des messages.
(status, searchRes) = imap.search(None, 'ALL')
# Récupération des numéros des messages
ids = searchRes[0].split()
for i in range(len(ids)):
# Récupère seulement l'expéditeur et le sujet dans le header
(status, res) = imap.fetch(ids[i], '(BODY[HEADER.FIELDS (FROM SUBJECT)])')
for responsePart in res:
if isinstance(responsePart, tuple):
msg = email.message_from_string(responsePart[1])
sender = msg['from']
subject = msg['subject']
print('expediteur : ', sender)
print('sujet : ', subject)
imap.close()
imap.logout()
manipulation des mailboxes
Il y a 2 classes utilisées dans le package mailbox :
- Mailbox qui est une classe de base que l'on instantie pas. On utilise l'un de ses classes dérivées en fonction du format de boite mail : Maildir, mbox, MH, Babyl, MMDF.
- Message qui dérive de email.message.Message et dont dérivent des classes en fonction du format MaildirMessage, mboxMessage, MHMessage, BabylMessage, MMDFMessage.
Copyright python-simple.com
programmer en python, tutoriel python, graphes en python, Aymeric Duclert