Maison >développement back-end >Tutoriel Python >Comment Python envoie-t-il ? Introduction à trois façons d'envoyer des e-mails en python

Comment Python envoie-t-il ? Introduction à trois façons d'envoyer des e-mails en python

不言
不言avant
2018-10-18 17:19:143430parcourir

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 :

Comment Python envoie-t-il ? Introduction à trois façons denvoyer des e-mails en python

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 :

Comment Python envoie-t-il ? Introduction à trois façons denvoyer des e-mails en python

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer

Articles Liés

Voir plus