Heim >Backend-Entwicklung >Python-Tutorial >Wie sendet Python? Einführung in drei Möglichkeiten zum Senden von E-Mails in Python

Wie sendet Python? Einführung in drei Möglichkeiten zum Senden von E-Mails in Python

不言
不言nach vorne
2018-10-18 17:19:143412Durchsuche

Der Inhalt dieses Artikels handelt davon, wie PHP SwooleTaskWorker verwendet, um den asynchronen Betrieb von MySQL (Code) zu implementieren. Ich hoffe, dass er für Sie hilfreich ist.

Es gibt drei Möglichkeiten, E-Mails in Python zu senden, einschließlich der Anmeldung beim Mailserver, der Verwendung des SMTP-Dienstes und des Aufrufs des sendmail-Befehls.

Das Senden von E-Mails in Python ist relativ einfach Zum Senden können Sie auch den Befehl sendmail verwenden. Sie können auch lokale oder Remote-SMTP-Dienste verwenden, um E-Mails zu senden. Dies ist einfacher umzusetzen. In diesem Mipu-Blog werden zunächst einige der einfachsten Möglichkeiten zum Versenden von E-Mails vorgestellt und diese aufgezeichnet. HTML-E-Mails, Anhänge usw. werden ebenfalls unterstützt.

1. Melden Sie sich beim Mailserver an

Melden Sie sich über SMTP beim Drittanbieter-SMTP-Postfach an, um E-Mails zu senden, die die Ports 25 und 465 unterstützen

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'

Führen Sie den Befehl aus:

$ python python_email_1.py 
send success by port 25
send success by port 465

Senden Sie das Ergebnis und Sie erhalten zwei E-Mails, wie unten gezeigt:

Wie sendet Python? Einführung in drei Möglichkeiten zum Senden von E-Mails in Python

2. Verwenden Sie den SMTP-Dienst

Der Test ist fehlgeschlagen, überspringen Sie ihn oder hinterlassen Sie eine Nachricht, um ihn zu korrigieren

#!/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. Rufen Sie den sendmail-Befehl auf

Rufen Sie den nativen Linux-Sendmail-Dienst auf, um E-Mails zu senden. Es ist nicht erforderlich, den Sendmail-Hintergrundprozess zu starten Geben Sie den Absender ein, um sich anzumelden. Der E-Mail-Absender kann ein beliebiger Name sein, es gibt keine Einschränkungen.

Besonderer Hinweis: Der sendmail-Befehl verwendet standardmäßig Port 25 zum Senden von E-Mails. Da Alibaba Cloud, Tencent Cloud usw. Port 25 blockiert haben, muss dieses Beispiel auf einem Computer mit aktiviertem Port 25 getestet werden

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)

Befehl ausführen:

python python_email_3.py

Ergebnis erhalten:

Wie sendet Python? Einführung in drei Möglichkeiten zum Senden von E-Mails in Python

Das obige ist der detaillierte Inhalt vonWie sendet Python? Einführung in drei Möglichkeiten zum Senden von E-Mails in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen

In Verbindung stehende Artikel

Mehr sehen