Comme il peut être utile d’envoyer des mails dans des scripts, voilà une méthode simple à mettre en place pour l’envoi de mail à partir d’une adresse mail déjà existante.
Pour commencer, il faut une adresse mail dont le fournisseur fourni les informations de connexion aux serveurs SMTP.
Voici la liste des différents serveur SMTP (vu ici) :
9 Telecom | Neuf.fr | smtp.neuf.fr |
Alice | Aliceadsl.fr | smtp.aliceadsl.fr |
AOL | Aol.com | smtp.aol.com |
AT&T | Att.net | outbound.att.net |
Bluewin | Bluewin.ch | smtpauths.bluewin.ch |
Bouygtel | Bouygtel.fr | smtp.bouygtel.fr |
Club Internet | Club-internet.fr | mail.club-internet.fr |
Free | Free.fr | smtp.free.fr |
Gmail | Gmail.com | smtp.gmail.com |
IFra | Ifrance.fr | smtp.ifrance.fr |
Hotmail | Hotmail.com | smtp.live.com |
LaPoste | Laposte.fr | smtp.laposte.fr |
NetCourrier | Netcourrier.com | smtp.netcourrier.com |
O2 | o2.com | smtp.o2.com |
Orange | Orange.fr | smtp.orange.fr |
Outlook.com (former Hotmail) | Outlook.com | smtp.live.com |
Sympatico | Sympatico.ca | smtphm.sympatico.ca |
Tiscali | Tiscali.fr | smtp.tiscali.fr |
Verizon | Verizon.net | outgoing.verizon.net |
Voila | Voila.fr | smtp.voila.fr |
Wanadoo | Wanadoo.fr | smtp.wanadoo.fr |
Yahoo | Yahoo.com | mail.yahoo.com |
Avec cela, tu auras besoin du port d’accès, de manière général, la connexion passera par du SSL, le port par défaut est 465 (lire cet article pour obtenir plus d’informations sur les ports).
Cependant, il peut être nécessaire d’autoriser les connexion tiers au serveur du fournisseur, par exemple pour les adresses gmail
Le code Python
Pour l’envoi de mail (avec un minimum de style) : tu pourras suivre ce schéma :
import smtplib, ssl from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart smtp_address = 'adresse-serveur-smtp' smtp_port = 465 email_address = 'identifiant-mail' email_password = 'mot-de-passe-mail' email_receiver = 'mail-destinataire' # on crée un e-mail message = MIMEMultipart("alternative") # on ajoute un sujet message["Subject"] = "Objet de mon mail" # un émetteur message["From"] = email_address # un destinataire message["To"] = email_receiver # on crée un texte et sa version HTML texte = ''' Voici le contenu de mon mail au format texte ''' html = ''' <html> <body> <h1>Mon corps du mail</h1 <div>Je suis le <i>corps</i> du <b>mail</b></div> </body> </html> ''' # on crée deux éléments MIMEText texte_mime = MIMEText(texte, 'plain') html_mime = MIMEText(html, 'html') # on attache ces deux éléments message.attach(texte_mime) message.attach(html_mime) context = ssl.create_default_context() with smtplib.SMTP_SSL(smtp_address, smtp_port, context=context) as server: # connexion au compte server.login(email_address, email_password) # envoi du mail server.sendmail(email_address, email_receiver, message.as_string())
Conclusion
Voilà comment envoyer un mail en ajoutant quelques lignes dans tes scripts.