Salut à tous, depuis longtemps sans voir. Petit à petit, je vais commencer à poster.
~ Envoi de courrier avec Gmail avec Python ~
C'est vraiment simple.
Lorsque le flux ci-dessus est démonté, trois étapes sont nécessaires.
create_msg.py
from email.mime.text import MIMEText
def create_msg(from_email, to_email):
#Le contenu de l'e-mail
subject = "Todo d'aujourd'hui"
message = '''
<ul>
<li>À propos du texte MINE</li>
<li>À propos de SMTP</li>
<li>Livre de technologie Web</li>
<li>À propos du modèle MVC</li>
</ul>
'''
#Explication 1
msg = MIMEText(message, "html")
msg["Subject"] = subject
msg["To"] = to_email
msg["From"] = from_email
return msg
*class email.mime.text.MIMEText(_text, _subtype='plain', _charset=None, , policy=compat32) C'est l'argument de la classe MINEText. Cette fois, "_text" et "_subtype" sont définis. "_text" est défini sur le message que vous souhaitez envoyer cette fois, et puisque vous souhaitez l'afficher au format HTML, "html" est passé à "_subtype".
Après cela, le sujet, la destination et la source sont passés à cette classe MIMEText. Ceci termine la composition du message pour l'envoi.
email.mine: Créez des objets mail et MIME à partir de zéro
gmail.py
#Explication 1
gmail = smtplib.SMTP("smtp.gmail.com", 587)
#Pour confirmation lorsque l'authentification échoue
gmail.set_debuglevel(True)
gmail.ehlo()
if gmail.has_extn('STARTTLS'):
#Passer à la communication cryptée
gmail.starttls()
gmail.ehlo()
#Commentaire 2
gmail.login(from_email, from_password)
#Envoyer un e-mail
gmail.send_message(msg)
Tout d'abord, SMTP class smtplib.SMTP(host='', port=0, local_hostname=None, [timeout, ]source_address=None) Écrit en. Client de protocole SMTP
J'utiliserai gmail cette fois, donc host='smtp.gmail.com' port=587 C'était fabriqué. Consultez l'aide Google ci-dessous pour savoir d'où ils proviennent. Aide Google
Puis connectez-vous. Vous pouvez vous connecter avec gmail.login (from_email, from_password). from_email mettez votre adresse e-mail, Pour from_password, saisissez votre mot de passe Gmail. Il y a un piège ici.
Par défaut, Gmail ne pourra pas envoyer de courrier depuis votre Python local, car Gmail inversera le DNS de l'adresse IP source et rejettera la connexion si le domaine n'est pas trouvé. Pour cette raison, il est nécessaire d'activer ** "Autoriser l'accès au compte à partir d'applications moins sécurisées" ** à l'avance dans les paramètres du compte. Cela pose un risque pour la sécurité, nous vous recommandons donc de créer un compte d'apprentissage distinct.
Accédez à "Sécurité" depuis votre compte Google (https://myaccount.google.com/) pour activer l'accès à des applications moins sécurisées.
De plus, les numéros d'hôte et de port varient selon le fournisseur.
Fournisseur | Nom du serveur SMTP |
---|---|
Gmail | smtp.gmail.com |
Outlook.com/Hotmail.com | smtp-mail.outllok.com |
Yahoo Mail | smtp.mail.yahoo.com |
AT&T | smtp.mail.att.net(port = 465) |
Comcast | smtp.comcast.net |
Verizon | smtp.verizon.net(port = 465) |
main.py
from email.mime.text import MIMEText
import smtplib
def send_email(email):
#Votre compte
from_email="Votre adresse Gmail"
from_password="Mot de passe pour vous connecter à Gmail"
#Destination
to_email = email
#Rédiger un message
msg = create_msg(from_email, to_email)
gmail = smtplib.SMTP("smtp.gmail.com", 587)
#Pour confirmation lorsque l'authentification échoue
gmail.set_debuglevel(True)
gmail.ehlo()
if gmail.has_extn('STARTTLS'):
#Passer à la communication cryptée
gmail.starttls()
gmail.ehlo()
#Commentaire 2
gmail.login(from_email, from_password)
#Envoyer un e-mail
gmail.send_message(msg)
def create_msg(from_email, to_email):
#Le contenu de l'e-mail
subject = "Todo d'aujourd'hui"
message = '''
<ul>
<li>À propos du texte MINE</li>
<li>À propos de SMTP</li>
<li>Livre de technologie Web</li>
<li>À propos du modèle MVC</li>
</ul>
'''
#Explication 1
msg = MIMEText(message, "html")
msg["Subject"] = subject
msg["To"] = to_email
msg["From"] = from_email
return msg
if __name__ == '__main__':
to_addr = 'Adresse e-mail de la personne que vous souhaitez envoyer'
send_email(to_addr)
Erreur lors de la tentative d'envoi de courrier depuis le programme avec Gmail email.mine: Créez des objets mail et MIME à partir de zéro Client de protocole SMTP Aide Google
Recommended Posts