Comment envoyer des e-mails en Python à l'aide de l'API gratuite du serveur de messagerie SMTP de Gmail

Patricia Arquette
Libérer: 2024-11-17 13:40:02
original
253 Les gens l'ont consulté

C'est le moyen le plus simple de commencer à envoyer des e-mails avec Python en utilisant seulement deux bibliothèques, smtplib et email.

Nous utiliserons l'API RESTful gratuite de Gmail dans cet exemple.

Voici le code

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

message = MIMEMultipart()
message["To"] = 'To line here.'
message["From"] = 'From line here.'
message["Subject"] = 'Subject line here.'

title = '<b> Title line here. </b>'
messageText = MIMEText('''Message body goes here.''','html')
message.attach(messageText)

email = 'Your Gmail address here.'
password = 'Your app password here.'

server = smtplib.SMTP('smtp.gmail.com:587')
server.ehlo('Gmail')
server.starttls()
server.login(email,password)
fromaddr = 'From line here.'
toaddrs  = 'Address you send to.'
server.sendmail(fromaddr,toaddrs,message.as_string())

server.quit()
Copier après la connexion

Comment fonctionne le code ?

Tout d'abord, importons smtplib puis MIMEMultipart et MIMEText depuis email.mime.multipart et email.mime.text respectivement :

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
Copier après la connexion

Nous appelons ensuite MIMEMultiPart() et l'instancions dans la variable Message. Nous donnons ensuite une valeur de chaîne à chaque variable qui sont Message, To, From et Subject, elle devrait ressembler à ceci :

Message = MIMEMultipart()
Message["To"] = 'To line here.'
Message["From"] = 'From line here.'
Message["Subject"] = 'Subject line here.'
Copier après la connexion

Nous allons également donner un titre à notre e-mail via la variable title et ajouter un message via MIMEText() et l'instancier dans la variable messageText et enfin joindre notre e-mail à notre variable principale Message en utilisant la fonction attach(), ça devrait ressembler à ça :

title = '<b> Title line here. </b>'
messageText = MIMEText('''Message body goes here.''','html')
Message.attach(messageText)
Copier après la connexion

Ajoutons notre adresse Gmail et notre mot de passe d'application, cliquez sur le lien ici si vous ne savez pas comment en obtenir un :

email = 'Your Gmail address here.'
password = 'Your App password here.'
Copier après la connexion

Ensuite, nous devrons nous connecter au serveur SMTP de Gmail, nous le ferons en utilisant la bibliothèque smtplib et nous aurons besoin de deux variables qui sont le serveur auquel nous voulons nous connecter et le port qui est smtp.gmail.com et 587 respectivement.

En utilisant la bibliothèque smtplib, nous appellerons la fonction SMTP et ajouterons les variables du serveur et du port comme arguments, cela devrait ressembler à ceci :

smtplib.SMTP('smtp.gmail.com:587') (n'oubliez pas le : entre eux)

Nous allons ensuite l'instancier sur le serveur de variables :

server = smtplib.SMTP('smtp.gmail.com:587')
Copier après la connexion

Nous ajoutons ensuite une instruction ehlo en utilisant server.ehlo('Gmail'), cela devrait être votre nom de domaine, ceci est utile lors de l'envoi d'un e-mail à un autre serveur de messagerie qui prend en charge ESMTP, gardons les choses simples et mettons simplement Gmail :

server.ehlo('Gmail')
Copier après la connexion

Démarrons également le protocole TLS avec server.starttls(), cela indique au serveur de messagerie que nous voulons envoyer notre email via une connexion sécurisée :

server.starttls()
Copier après la connexion

Nous nous connecterons ensuite au serveur de messagerie en utilisant cette ligne :

server.login(email,password)
Copier après la connexion

Ajoutons une adresse d'expéditeur et une ou plusieurs adresses, en utilisant respectivement fromaddr et toaddrs :

fromaddr = 'Your Gmail address.'
toaddrs  = 'Destination address.'
Copier après la connexion

Enfin, nous envoyons notre email en utilisant server.sendmail(fromaddr,toaddrs,message.as_string()) et nous fermons notre connexion au serveur de messagerie en utilisant server.quit() :

server.sendmail(fromaddr,toaddrs,message.as_string())
server.quit()
Copier après la connexion

Enregistrez-le dans un fichier appelé send_email.py, ouvrez un terminal si vous êtes sous Linux ou une invite de commande si vous êtes sous Windows et lancez-le en utilisant python send_email.py et vous devriez voir ceci :

How to Send Emails in Python Using Gmail’s Free SMTP Mail Server API

Si rien ne se passe, et bien bonne nouvelle ça marche !

Vous devriez avoir reçu un e-mail à votre(vos) e-mail(s) de destination, voici ce que j'ai reçu :

How to Send Emails in Python Using Gmail’s Free SMTP Mail Server API

L'envoi d'e-mails à l'aide de Python et du serveur SMTP gratuit de Gmail est le moyen le plus simple de commencer à envoyer des e-mails dans votre code Python. C'est exactement ce que j'ai fait lorsque j'ai créé ma première entreprise en ligne. Vous pouvez en savoir plus ici.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal