ホームページ > バックエンド開発 > Python チュートリアル > ヒント | Python は滞ることなく定期的にメールを送信します (自動的に添付ファイルが追加されます)。

ヒント | Python は滞ることなく定期的にメールを送信します (自動的に添付ファイルが追加されます)。

リリース: 2023-08-10 16:11:42
転載
963 人が閲覧しました



#この問題の概要
職場では、毎週、毎日、またはその他の時間帯で作業報告やファイル送信などのタスクを行う必要があることがよくありますが、このとき、定期的なメール送信を設定できれば、その必要はありません。毎回手動でやればいいのに、とても便利だと思いませんか?今回は、メールの定期送信に関するライブラリをいくつか紹介しますので、ご参考になれば幸いです。
#主に関与する人:

email## -- 電子メールの形式と内容を設定します #

smtplib -- 電子メールを送信

schedule -- スケジュールされたタスク
#1. メール設定
1.1 設定

QQ メールボックスにログインします。 #Settings-Account を開きます (ここでの操作は個人メールです。企業メールの場合は # を選択してください) ##その他のメール以上です)##:

#1.2 POP3 /SMTP サービス認証コードの取得 ヒント | Python は滞ることなく定期的にメールを送信します (自動的に添付ファイルが追加されます)。
最初の操作では、次の 4 つの項目はすべてオフになっています (ここではすでにオンになっています)。指定された携帯電話の指定された番号に「
Configuration Email Client

」を送信し、指示に従ってください。その後、サービス認証コードを受け取ります。 。


2. メールを送信

#2.1 電子メール/smtplib 関連モジュールのインポート
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication
import smtplib
ログイン後にコピー
注: 関連するモジュールがない場合は、pip install xxx を実行してください。

2.2 電子メール モジュール

MIMEText: はテキスト オブジェクト

MIMEImage を表します: Picture オブジェクトを表します

MIMEMultipart( には 3 つのサブタイプがあります): 混合、代替、関連。

  • 混合 電子メール に添付ファイルが含まれている場合、 はマルチパート/混合タイプを定義する必要があります
  • 代替 電子メール にプレーン テキスト本文 (text/plain) とハイパーテキスト本文 (text/html) が含まれる場合、 は multipart/ を定義する必要があります。 代替タイプ
  • 関連電子メールに添付ファイルに加えて埋め込みリソースが含まれている場合、multipart/ ##を定義する必要があります#関連タイプ
#MIMEApplication:添付ファイルのカプセル化

2.2.1 ##電子メール設定 #

# 设置邮箱的域名
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 モジュール

##クライアント電子メール送信

# 获取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()
ログイン後にコピー
运行效果
ヒント | Python は滞ることなく定期的にメールを送信します (自動的に添付ファイルが追加されます)。


3. スケジュールされたタスク

##3.1 スケジュール ライブラリ

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

schedule.every(1).minutes.do(func)
ログイン後にコピー

效果:

ヒント | Python は滞ることなく定期的にメールを送信します (自動的に添付ファイルが追加されます)。

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)
ログイン後にコピー

完。


以上がヒント | Python は滞ることなく定期的にメールを送信します (自動的に添付ファイルが追加されます)。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:Python当打之年
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート