Heim  >  Artikel  >  Backend-Entwicklung  >  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

Python当打之年
Python当打之年nach vorne
2023-08-10 16:11:42893Durchsuche


... 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')

2.2.2 添加正文 

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

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)

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)

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)

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)

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()
运行效果
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
schedule:是python的一个轻量级定时任务库,可以完成每分钟,每小时,每天,周几,特定日期的定时任务。
eg:每分钟执行一次任务
def func():
    print('{} 执行func'.format(time.strftime("%H:%M", time.localtime())))

schedule.every(1).minutes.do(func)

效果:

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)

完。


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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:Python当打之年. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen