Heim > Backend-Entwicklung > Python-Tutorial > Tipps |. Python sendet regelmäßig E-Mails (fügt automatisch Anhänge hinzu), ohne hängen zu bleiben

Tipps |. Python sendet regelmäßig E-Mails (fügt automatisch Anhänge hinzu), ohne hängen zu bleiben

Freigeben: 2023-08-10 16:11:42
nach vorne
1015 Leute haben es durchsucht


... Einführung
Bei der Arbeit müssen wir oft fragen: Ist es bequem, die Arbeit zu erledigen? Berichte, Dateiversand und andere Aufgaben in anderen Zeiträumen? Wäre es nicht sehr praktisch, wenn Sie zum jetzigen Zeitpunkt den regelmäßigen E-Mail-Versand einrichten könnten, ohne jedes Mal manuelle Vorgänge durchführen zu müssen? In dieser Ausgabe stelle ich Ihnen mehrere Bibliotheken vor, die sich mit dem regelmäßigen Versenden von E-Mails befassen. Ich hoffe, dass sie für Sie hilfreich sind.
Hauptsächlich bezogen auf:

E-Mail - E-Mail-Format und -Inhalt festlegen

smtplib – E-Mail senden

Zeitplan – Geplante Aufgaben
1. E-Mail-Einstellungen

?? persönliches Postfach, Firmenpostfachauswahl
Sonstiges E-Mail
d.h. Ja)
1.2 POP3/SMTP-Dienstautorisierungscode abrufen

Die folgenden vier Elemente sind alle zum ersten Mal deaktiviert (ich habe drehte sich um Klicken Sie auf „Öffnen“ auf der Rückseite und bitten Sie darum, mit dem gebundenen Mobiltelefon „E-Mail-Client konfigurieren“ an die angegebene Nummer zu senden. Tun Sie es einfach und Sie erhalten dann den „Service-Autorisierungscode“. 2. E-Mail senden 2. E-Mail senden 2.1 E-Mail-/SMTPLIB-bezogene Module importieren


Achtung:
Wenn kein relevantes Modul vorhanden ist, einfach pip install xxx.

2.2 E-Mail-Modul

MIMEText: repräsentiert ein Textobjekt

MIMEImage : repräsentiert ein Bildobjekt

MIMEMultipart(hat drei Untertypen): gemischt, alternativ, verwandt.

  • gemischt Wenn die E-Mail Anhänge enthält, muss der Typ „Multipart/Mixed“
  • definiert werden
  • alternative Wenn die E-Mail einfachen Text (Text/Plain) und Hypertext (Text/HTML) enthält, muss der Typ Multipart/Alternative definiert werden,
  • bezogen, wenn die E-Mail „Wann“ enthält Anhänge enthalten auch eingebettete Ressourcen, muss den multipart/verwandtenTyp
  • definieren
MIMEApplication: Gekapselter Anhang

2.2.1 E-Mail-Einstellungen

# 设置邮箱的域名
HOST = 'smtp.qq.com'
# 设置邮件标题
SUBJECT = '工作汇报'
# 设置发件人邮箱
FROM = 'aaa@qq.com'
# 设置收件人邮箱,可以同时发送到多个邮箱(用list)
TO = 'bbb@qq.com'
# 设置附件模式
message = MIMEMultipart('mixed')
Nach dem Login kopieren

2.2.2 添加正文

MIMEText
''' 添加正文 '''
content = '欧sir,附件为最新日期文件,请查收!'
content_msg = MIMEText(content)
message.attach(content_msg)
Nach dem Login kopieren

2.2.3 添加图片文件

MIMEImage
image_file = open('Python当打之年.jpg', 'rb').read()
image = MIMEImage(image_file)
image.add_header('Content-Disposition', 'attachment', filename='Python当打之年.jpg')
message.attach(image)
Nach dem Login kopieren

2.2.4 添加doc文件

MIMEApplication
doc = '算法与数据结构.doc'
doc_file = MIMEApplication(open(doc, 'rb').read())
doc_file.add_header('Content-Disposition', 'attachment', filename=doc)
message.attach(doc_file)
Nach dem Login kopieren

2.2.5 添加pdf文件

MIMEApplication
pdf = 'Python高性能编程.pdf'
pdf_file = MIMEApplication(open(pdf, 'rb').read())
pdf_file.add_header('Content-Disposition', 'attachment', filename=pdf)
message.attach(pdf_file)
Nach dem Login kopieren

2.2.6 添加表格文件

MIMEApplication
csv_file = open('blockdtas.xlsx', 'rb').read()
csv = MIMEApplication(csv_file)
csv.add_header('Content-Disposition', 'attachment', filename='blockdtas.xlsx')
message.attach(csv)
Nach dem Login kopieren

2.3 smtplib-Modul

Kunden-E-Mail-Versand:

# 获取SSL证书
email_client = smtplib.SMTP_SSL(host='smtp.qq.com')
# 设置域名和端口,端口为465
email_client.connect(HOST, '465')
# 邮箱授权码
email_client.login(FROM, '你的授权码')
email_client.sendmail(from_addr=FROM, to_addrs=TO.split(','), msg=message.as_string())
# 关闭邮件发送客户端
email_client.quit()
Nach dem Login kopieren
运行效果
Tipps |. Python sendet regelmäßig E-Mails (fügt automatisch Anhänge hinzu), ohne hängen zu bleiben


3. Geplante Aufgaben

3.1 Zeitplanbibliothek

import schedule as schedule
Nach dem Login kopieren
schedule:是python的一个轻量级定时任务库,可以完成每分钟,每小时,每天,周几,特定日期的定时任务。
eg:每分钟执行一次任务
def func():
    print('{} 执行func'.format(time.strftime("%H:%M", time.localtime())))

schedule.every(1).minutes.do(func)
Nach dem Login kopieren

效果:

Tipps |. Python sendet regelmäßig E-Mails (fügt automatisch Anhänge hinzu), ohne hängen zu bleiben

3.2 定时发送邮件

以下是几个周期发送邮件的语法,大家可以自行运行:

# 每1分钟执行一次任务:
schedule.every(1).minutes.do(send_email)
# 每小时执行一次任务:
schedule.every().hour.do(send_email)
# 每天在什么时间点执行一次任务:
schedule.every().day.at('17:30').do(send_email)
# 每10-20分钟(随机)执行一次任务:
schedule.every(10).to(20).minutes.do(send_email)
# 每周一执行一次任务:
schedule.every().monday.do(send_email)
# 每周一什么时间点执行一次任务:
schedule.every().monday.at('09:00').do(send_email)
# 每分钟在第45秒的时候执行任务:
schedule.every().minute.at(':45').do(send_email)
Nach dem Login kopieren

完。


Das obige ist der detaillierte Inhalt vonTipps |. Python sendet regelmäßig E-Mails (fügt automatisch Anhänge hinzu), ohne hängen zu bleiben. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:Python当打之年
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage