SMTP ist ein Protokoll zum Senden von E-Mails Python verfügt über integrierte Unterstützung für SMTP und kann Nur-Text-E-Mails, HTML-E-Mails und E-Mails mit Anhängen senden.
Python unterstützt SMTP mit zwei Modulen: smtplib und email ist für die Erstellung von E-Mails verantwortlich und smtplib ist für das Versenden von E-Mails verantwortlich.
email.mime.text email.utils msg = MIMEText(message, , ) msg[] = formataddr([,]) msg[] = formataddr([,]) msg[] = server = smtplib.SMTP(, 25 server.login(, server.sendmail(, [ u u == cpu = 100 disk = 500 mem = 50 i range(1 cpu > 90 alert = u disk > 90 alert = u mem > 80 alert = u email(alert)
#Python发送HTML格式的邮件与发送纯文本消息的邮件不同之处就是将MIMEText中_subtype设置为html
1 msg = MIMEText('<html><body><h1>Hello</h1>' +2 '<p>send by <a href="http://www.python.org">Python</a>...</p>' +3 '</body></html>', 'html', 'utf-8')
Um eine E-Mail mit einem Anhang zu senden, müssen Sie zunächst eine MIMEMultipart()-Instanz erstellen und dann den Anhang erstellen. Wenn mehrere Anhänge vorhanden sind, können diese nacheinander erstellt und schließlich mit gesendet werden smtplib.smtp.
1 #!/usr/bin/env python 2 #coding:utf-8 3 4 import smtplib 5 from email.mime.text import MIMEText 6 from email.utils import formataddr 7 from email.mime.multipart import MIMEMultipart 8 9 def email(message):10 11 msg = MIMEMultipart()12 msg['From'] = formataddr(["管理员",'ylemail2012@sina.cn'])13 msg['To'] = formataddr(["Saneri",'349622541@qq.com'])14 msg['Subject'] = "Zabbix报警系统!"15 msg.attach(MIMEText(message, 'plain', 'utf-8'))16 17 #---这是附件部分---18 # 构造附件1,文本类型附件19 att1 = MIMEText(open('test.txt', 'rb').read(), 'base64', 'utf-8')20 att1["Content-Type"] = 'application/octet-stream'21 # 这里的filename可以任意写,写什么名字,邮件中显示什么名字22 att1["Content-Disposition"] = 'attachment; filename="test.txt"'23 msg.attach(att1)24 25 # 构造附件2,jpg类型附件26 from email.mime.application import MIMEApplication27 att2 = MIMEApplication(open('001.jpg','rb').read())28 att2.add_header('Content-Disposition', 'attachment', filename="001.jpg")29 msg.attach(att2)30 #构造附件3,pdf类型附件31 att3 = MIMEApplication(open('test.pdf','rb').read())32 att3.add_header('Content-Disposition', 'attachment', filename="test.pdf")33 msg.attach(att3)34 #构造附件4,xlsx类型附件35 att4 = MIMEApplication(open('test.xlsx','rb').read())36 att4.add_header('Content-Disposition', 'attachment', filename="test.xlsx")37 msg.attach(att4)38 #构造附件5,mp3类型附件39 att5 = MIMEApplication(open('test.mp3','rb').read())40 att5.add_header('Content-Disposition', 'attachment', filename="test.mp3")41 msg.attach(att5)42 43 try:44 server = smtplib.SMTP("smtp.sina.com", 25)45 #set_debuglevel(1)可以打印出和SMTP服务器交互的所有信息46 #server.set_debuglevel(1)47 #login()方法用来登录SMTP服务器48 server.login("ylemail2012@sina.cn","password")49 #sendmail()方法就是发邮件,由于可以一次发给多个人,所以传入一个list,邮件正文是一个str,as_string()把MIMEText对象变成str50 server.sendmail('ylemail2012@sina.cn', ['349622541@qq.com',], msg.as_string())51 print u"邮件发送成功!"52 server.quit()53 except smtplib.SMTPException:54 print u"Error: 无法发送邮件"55 if name == 'main':56 cpu = 10057 disk = 50058 mem = 5059 for i in range(1):60 if cpu > 90:61 alert = u"CPU出问题!"62 email(alert)63 if disk > 90:64 alert = u"硬盘出问题!"65 email(alert)66 if mem > 80:67 alert = u"内存出问题!"68 email(alert)
Es ist für allgemeine E-Mail-Dienstanbieter ungültig, externe Links zum HTML-Text der E-Mail korrekt hinzuzufügen Fügen Sie Beispiele für Durchbrüche hinzu:
1 #!/usr/bin/env python 2 #coding:utf-8 3 4 import smtplib 5 from email.mime.multipart import MIMEMultipart 6 from email.mime.text import MIMEText 7 from email.mime.image import MIMEImage 8 from email.utils import formataddr 9 10 def email():11 msg = MIMEMultipart()12 msg['From'] = formataddr(["管理员",'ylemail2012@sina.cn'])13 msg['To'] = formataddr(["Saneri",'349622541@qq.com'])14 msg['Subject'] = "Zabbix报警系统!"15 msg.attach(MIMEText('<b>Some <i>HTML</i> text</b> and an image.<br><img src="cid:image1"><br>good!','html','utf-8'))16 17 fp = open('001.jpg', 'rb')18 msgImage = MIMEImage(fp.read())19 fp.close()20 msgImage.add_header('Content-ID', '<image1>')21 msg.attach(msgImage)22 try:23 server = smtplib.SMTP("smtp.sina.com", 25)24 server.login("ylemail2012@sina.cn","password")25 server.sendmail('ylemail2012@sina.cn', ['349622541@qq.com',], msg.as_string())26 print u"邮件发送成功!"27 server.quit()28 except smtplib.SMTPException:29 print u"Error: 无法发送邮件"30 31 if name == 'main':32 email()
Wenn wir eine HTML-E-Mail senden, kann der Empfänger die E-Mail normal über einen Browser durchsuchen Software wie Outlook-Inhalte, aber was ist, wenn das Gerät des Empfängers zu alt ist, um HTML-E-Mails anzuzeigen?
Die Methode besteht darin, beim Senden von HTML einen Nur-Text anzuhängen. Wenn der Empfänger die E-Mail nicht im HTML-Format anzeigen kann, kann er automatisch auf die Anzeige der E-Mail im Nur-Text-Format umsteigen.
Verwenden Sie MIMEMultipart
, um HTML und Plain zu kombinieren. Bitte beachten Sie, dass der angegebene Untertyp alternative
1 msg = MIMEMultipart('alternative')2 msg['From'] = ...3 msg['To'] = ...4 msg['Subject'] = ...5 6 msg.attach(MIMEText('hello', 'plain', 'utf-8'))7 msg.attach(MIMEText('<html><body><h1>Hello</h1></body></html>', 'html', 'utf-8'))8 # 正常发送msg对象...
Detaillierte Einführung in das Beispiel von Python, das SMTP zum Senden von E-Mails verwendet
2Codezusammenfassung von Python, das SMTP zum Senden von E-Mails verwendet
3.c#-Aufruf Geänderter Code für QQ-Mailbox-SMTP zum Senden von E-Mails
4Python verwendet SMTP zum Senden von E-Mails
5 zum Senden von E-Mails6. Geben Sie ein Beispiel für die Verwendung von Python zur Implementierung von SMTP zum Senden von E-Mails mit Bildern und Text
7 Verwenden des Python-Moduls smtplib zum Senden sicherer SSL/TLS-E-Mails
Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung des Python-SMTP-Mail-Moduls. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!