Ce tutoriel présentera une introduction à SMTP, un module Python utilisé pour l’envoi de courrier. Il montrera également comment envoyer différents types de courrier électronique, tels que des courriers électroniques simples, des courriers électroniques avec pièces jointes et des courriers électroniques contenant du contenu HTML.
Le protocole SMTP (Simple Mail Transfer Protocol) gère l'envoi et le routage du courrier électronique entre les serveurs de messagerie.
En Python, le smtplib
Le module définit un objet de session client SMTP pouvant être utilisé pour envoyer des messages à n’importe quel ordinateur doté d’un démon écouteur SMTP ou ESMTP..
Voici comment créer un objet SMTP.
import smtplib server = smtplib.SMTP (host = 'adresse_hôte', port = votre_port)
Le script suivant vous permettra d’envoyer un courrier électronique via le serveur SMTP de Gmail. Cependant, Google ne permettra pas de se connecter via smtplib
car il a marqué ce type de connexion comme "moins sécurisé". Pour résoudre ce problème, accédez à la page https://www.google.com/settings/security/lesssecureapps lorsque vous êtes connecté à votre compte Google et à "Autoriser les applications moins sécurisées". Voir la capture d'écran ci-dessous.
Nous allons suivre les étapes suivantes pour accomplir ce processus:
MIMEMultipart
un objet de message et y attacher les en-têtes correspondants, c’est-à-dire De, À et Sujet.MIMEMultipart
objet.Ce processus est aussi simple que montré ci-dessous.
# importer les packages nécessaires de email.mime.multipart importer MIMEMultipart de email.mime.text importer MIMEText importer smtplib # créer une instance d'objet de message msg = MIMEMultipart () message = "Merci" # configurez les paramètres du message mot de passe = "votre_mot_passe" msg ['From'] = "your_address" msg ['To'] = "to_address" msg ['Subject'] = "Subscription" # ajouter dans le corps du message msg.attach (MIMEText (message, 'plain')) # create server server = smtplib.SMTP ('smtp.gmail.com: 587') server.starttls () # Identifiants de connexion pour l'envoi de la messagerie server.login (msg ['De'], mot de passe) # envoie le message via le serveur . server.sendmail (msg ['De'], msg ['À'], msg.as_string ()) server.quit () print "a envoyé un e-mail à% s:"% (msg ['À']])
Notez que les adresses «À» et «De» doivent être incluses explicitement dans les en-têtes de message..
Dans cet exemple, nous allons envoyer un email avec une image en pièce jointe. Le processus est similaire à l'envoi d'un e-mail en texte brut.
MIMEMultipart
un objet de message et y attacher les en-têtes correspondants, c’est-à-dire De, À et Sujet.MIMEMultipart
objet.# send_attachment.py # importez les packages nécessaires depuis email.mime.multipart importez MIMEMultipart depuis email.MIMEImage import MIMEImage depuis email.mime.text importez MIMEText import smtplib # créez une instance d'objet de message msg = MIMEMultipart () # configurez les paramètres du mot de passe du message = "your_password" msg ['De'] = "votre_adresse" msg ['Vers'] = "to_address" msg ['Subject'] = "Photos" # joint une image au corps du message msg.attach (MIMEImage (file ("google .jpg "). read ())) # créer serveur serveur = smtplib.SMTP ('smtp.gmail.com: 587') server.starttls () # Identifiants de connexion pour l'envoi du mail server.login (msg ['De' ], mot de passe) # envoyer le message via le serveur. server.sendmail (msg ['De'], msg ['À'], msg.as_string ()) server.quit () print "a envoyé un e-mail à% s:"% (msg ['À']])
le MIMEImage
classe est une sous-classe de MIMENonMultipart
qui est utilisé pour créer des objets de message MIME de types d'image.Les autres cours disponibles incluentMIMEMessage
et MIMEAudio
.
La première chose à faire est de créer un modèle de courrier électronique HTML..
Voici le code HTML du modèle, qui contient deux colonnes de tableau, chacune avec une image et un contenu d’aperçu. Si vous préférez une solution prête à l'emploi et professionnelle, récupérez nos meilleurs modèles de courrier électronique. Nous avons un certain nombre d'options réactives avec des fonctionnalités faciles à personnaliser pour commencer avec.
Bulletin électronique Tutsplus
|
Le modèle ressemblera finalement à ceci une fois terminé:
Vous trouverez ci-dessous le script pour envoyer un courrier électronique avec un contenu HTML. Le contenu du modèle sera notre message électronique.
importer smtplib importer email.message server = smtplib.SMTP ('smtp.gmail.com:587') email_content = "" "Bulletin électronique Tutsplus
|
Exécutez votre code et si aucune erreur ne survient, le courrier électronique a réussi. Allez maintenant dans votre boîte de réception et vous devriez voir votre courriel sous forme de contenu HTML bien formaté.
Ce tutoriel a couvert la plupart des éléments nécessaires à l'envoi de courriers électroniques pour votre application. Plusieurs API sont disponibles pour l'envoi de courriers électroniques. Vous n'avez donc pas besoin de recommencer à zéro, par exemple. SendGrid, mais il est également important de comprendre les bases. Pour plus d'informations, consultez la documentation Python..
De plus, n'hésitez pas à voir ce que nous avons à vendre et à étudier sur le marché Envato, posez vos questions et commentez vos remarques en utilisant le fil ci-dessous..