Le contenu de cet article explique comment PHP utilise SwooleTaskWorker pour implémenter le fonctionnement asynchrone de Mysql (code). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
Il existe trois façons d'envoyer des e-mails en Python, notamment la connexion au serveur de messagerie, l'utilisation du service smtp et l'appel de la commande sendmail.
L'envoi d'e-mails en Python est relativement simple. Vous pouvez vous connecter au service de messagerie. Pour envoyer, vous pouvez également utiliser la commande sendmail pour envoyer sous Linux. Vous pouvez également utiliser des services smtp locaux ou distants pour envoyer des e-mails, qu'ils soient uniques, groupés ou en copie carbone. à mettre en œuvre. Ce blog Mipu présente d'abord quelques-unes des façons les plus simples d'envoyer des e-mails et de les enregistrer. Les e-mails HTML, les pièces jointes, etc. sont également pris en charge. Il suffit de consulter la documentation si nécessaire.
1. Connectez-vous au serveur de messagerie
Connectez-vous à la boîte aux lettres SMTP tierce via SMTP pour envoyer du courrier, prenant en charge les ports 25 et 465
vim python_email_1.py
#!/usr/bin/env python # -*- coding:utf-8 -*- # # author: mimvp.com # 2015.10.05 import smtplib from email.mime.text import MIMEText smtpHost = 'smtp.exmail.qq.com' sender = 'robot@mimvp.com' password = "mimvp-password" receiver = 'yanggang@mimvp.com' content = 'hello mimvp.com' msg = MIMEText(content) msg['Subject'] = 'email-subject' msg['From'] = sender msg['To'] = receiver ## smtp port 25 smtpServer = smtplib.SMTP(smtpHost, 25) # SMTP smtpServer.login(sender, password) smtpServer.sendmail(sender, receiver, msg.as_string()) smtpServer.quit() print 'send success by port 25' ## smtp ssl port 465 smtpServer = smtplib.SMTP_SSL(smtpHost, 465) # SMTP_SSL smtpServer.login(sender, password) smtpServer.sendmail(sender, receiver, msg.as_string()) smtpServer.quit() print 'send success by port 465'
Exécutez la commande :
$ python python_email_1.py send success by port 25 send success by port 465
Envoyez le résultat et vous recevrez deux e-mails. Prenez une capture d'écran de l'un des e-mails comme indiqué ci-dessous :
2. Utilisez le service smtp
Le test a échoué, ignorez-le ou laissez un message pour corriger it
#!/usr/bin/env python # -*- coding:utf-8 -*- # # author: mimvp.com # 2015.10.05 import smtplib from email.mime.text import MIMEText import subprocess smtpHost = 'smtp.exmail.qq.com' sender = 'robot@mimvp.com' password = "mimvp-password" receiver = 'yanggang@mimvp.com' content = 'hello mimvp.com' msg = MIMEText(content) if __name__ == "__main__": p = subprocess.Popen(['/usr/sbin/sendmail', '-t'], stdout=subprocess.PIPE) print(str(p.communicate())) p_res = str(p.communicate()[0]) msg = MIMEText(p_res) msg["From"] = sender msg["To"] = receiver msg["Subject"] = "hello mimvp.com" s = smtplib.SMTP(smtpHost) s.login(sender, password) s.sendmail(sender, receiver, msg.as_string()) s.quit() print 'send success'
3. Appelez la commande sendmail
Appelez le service sendmail natif de Linux pour envoyer des e-mails. Il n'est pas nécessaire de démarrer le processus sendmail en arrière-plan, et l'expéditeur n'a pas besoin de se connecter. L'expéditeur de l'e-mail peut être n'importe quel nom, il n'y a aucune restriction.
Remarque spéciale : la commande sendmail utilise le port 25 pour envoyer des e-mails par défaut. Étant donné qu'Alibaba Cloud, Tencent Cloud, etc. ont bloqué le port 25, cet exemple doit être testé sur une machine avec le port 25 activé
vim python_email_3.py
#!/usr/bin/env python # -*- coding:utf-8 -*- # # author: mimvp.com # 2015.10.05 from email.mime.text import MIMEText from subprocess import Popen, PIPE import commands import sys reload(sys) sys.setdefaultencoding('utf-8') def send_mail(sender, recevier, subject, html_content): msg = MIMEText(html_content, 'html', 'utf-8') msg["From"] = sender msg["To"] = recevier msg["Subject"] = subject p = Popen(["/usr/sbin/sendmail", "-t"], stdin=PIPE) p.communicate(msg.as_string()) sender = 'robot@mimvp.com' recevier = 'yanggang@mimvp.com' subject = 'sendmail-subject' html_content = 'hello mimvp.com' send_mail(sender, recevier, subject, html_content)
Exécuter la commande :
python python_email_3.py
Recevoir le résultat :
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!