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

不言
Libérer: 2018-10-18 17:19:14
avant
3418 Les gens l'ont consulté

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'
Copier après la connexion

Exécutez la commande :

$ python python_email_1.py 
send success by port 25
send success by port 465
Copier après la connexion

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'
Copier après la connexion

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)
Copier après la connexion

Exécuter la commande :

python python_email_3.py
Copier après la connexion

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!

Étiquettes associées:
source:segmentfault.com
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal