亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python自動化辦公之定時發(fā)送郵件的實(shí)現(xiàn)

 更新時間:2022年05月24日 09:29:59   作者:渴望力量的哈士奇  
python中的schedule模塊可以使我們方便簡單的使用定時任務(wù),即在特定的時間自動的執(zhí)行一些任務(wù)的功能,本文將用這一模塊實(shí)現(xiàn)郵件自動發(fā)送,需要的可以參考一下

該章節(jié)為 Python自動化辦公篇 的最后一章,通過定時任務(wù)發(fā)送郵件的方式學(xué)習(xí)定時模塊的使用 --> schedule 。(該章內(nèi)容篇幅較少)

定時模塊的使用

python中有一個輕量級的定時任務(wù)調(diào)度的庫:schedule。它可以完成每分鐘,每小時,每天,周幾,特定日期的定時任務(wù)。因此十分方便我們執(zhí)行一些輕量級的定時任務(wù)。

schedule 模塊的介紹

定時任務(wù):

在 特定的時間 自動的執(zhí)行一些任務(wù)的功能, python 中的 schedule 模塊可以使我們方便簡單的使用定時任務(wù)。

schedule 的安裝:

pip install schedule 如果安裝失敗,嘗試一下更換國內(nèi)的鏡像源。

schedule 模塊各種時間用法

每過多少分鐘執(zhí)行一次 func函數(shù) ,args是函數(shù)的參數(shù) :

schedule.every(count).minutes.do(func, args)

每天的 10:20 執(zhí)行一次 func 函數(shù),args是函數(shù)的參數(shù) :

schedule.every().day.at("10:20").do(func, args)

schedule 模塊支持的時間如下:

類型說明
minutes分鐘
seconds
hour小時
day
week

schedule 模塊支持的時間遠(yuǎn)不止這些,這里至介紹了常用的幾個時間方式。

schedule 的啟動

類型說明
schedule.run_pending執(zhí)行

PS:要放在 "while" 中執(zhí)行,并且利用時間至少 1秒 的阻塞。

代碼示例如下:

# coding:utf-8

import smtplib
import time
import schedule  # pip install schedule

from email.mime.text import MIMEText
from email.header import Header
from email.mime.multipart import MIMEMultipart


'''
第三方的 smpt [腳本中涉及的郵箱地址都是假的,請使用自己的真實(shí)郵箱地址進(jìn)行測試]
'''

mail_host = "smtp.sina.com"     # 設(shè)置郵箱服務(wù)器
mail_user = "conan868242"       # 設(shè)置自己的郵箱
mail_pass = "cb997b01a87232b2"  # 這里就是郵箱的口令,也就是授權(quán)碼;不是密碼。

sender = "conan868242@sina.com"     # 定義發(fā)送者郵箱(其實(shí)就是自己)
receivers = ["3241716373@qq.com"]   # 定義接受者郵箱(可以是多個接收者)

# message = MIMEText('<p style="color:red;">這是一個測試</p>', "html", "utf-8")     # 定義郵件內(nèi)容;"plain"是格式,表示是普通的文件內(nèi)容
message = MIMEMultipart()       # 定義帶有附件的郵件對象

message["From"] = Header(sender)                            # 在message內(nèi)定義發(fā)送信息 --> 發(fā)送者
message["Subject"] = Header("Python 測試郵件發(fā)送", "utf-8")   # 在message內(nèi)定義發(fā)送信息的標(biāo)題
# print("加密后的發(fā)送內(nèi)容\n", message.as_string())      # 打印輸出加密后的發(fā)送內(nèi)容

attr = MIMEText(open('send.py', 'rb').read(), 'base64', 'utf-8')    # 定義帶有附件的郵件發(fā)送內(nèi)容;(默認(rèn)是一種屬性);
                                                                    # 以 open 的形式將需要發(fā)送的文件讀出來
                                                                    # 定義內(nèi)容為"base64"格式
attr['Content-Type'] = 'application/octet-stream'   # 針對屬性進(jìn)行格式上的定義;"application/octet-stream"代表著流上的一種協(xié)議
                                                    # 即定義 "附件" 的類型
attr['Content-Disposition'] = 'attachment;filename="send.py"'       # 針對傳輸?shù)母郊x一個名稱

message.attach(attr)        # 利用 "message" 的 "attach" 函數(shù)將 "附件" 添加進(jìn)去
message = MIMEText('這是一個帶附件的郵件', "plain", "utf-8")      # 定義郵件文字內(nèi)容(即添加郵件的主內(nèi)容)

def send():
    print("郵件開始發(fā)送")
    try:    # 捕獲發(fā)送郵件的異常
        smtpObj = smtplib.SMTP()             # 實(shí)例化 SMTP 協(xié)議對象
        smtpObj.connect(mail_host, 25)       # 鏈接 SMTP 服務(wù)器
        smtpObj.login(mail_user, mail_pass)  # 登錄郵箱驗(yàn)證
        smtpObj.sendmail(sender, receivers, message.as_string())    # 發(fā)送郵件; "message" 通過 "as_string()" 進(jìn)行發(fā)送內(nèi)容字符串的加密
    except smtplib.SMTPException as error:
        print("error:{}".format(error))


if __name__ == '__main__':
    schedule.every(10).seconds.do(send)     # 每隔十秒鐘發(fā)送一次郵件

    while True:     # 啟動定時任務(wù),延時1秒。
        schedule.run_pending()
        time.sleep(1)

PS:可以考慮加上發(fā)送郵件和定時任務(wù)之間的時間差,進(jìn)行定時任務(wù)的調(diào)試,這里我就偷懶不寫了哈。

運(yùn)行結(jié)果如下:

到此這篇關(guān)于Python自動化辦公之定時發(fā)送郵件的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Python定時發(fā)送郵件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python編程基礎(chǔ)之函數(shù)和模塊

    Python編程基礎(chǔ)之函數(shù)和模塊

    這篇文章主要為大家介紹了Python函數(shù)和模塊,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • Python中無限元素列表的實(shí)現(xiàn)方法

    Python中無限元素列表的實(shí)現(xiàn)方法

    這篇文章主要介紹了Python中無限元素列表的實(shí)現(xiàn)方法,很實(shí)用的功能,需要的朋友可以參考下
    2014-08-08
  • Python傳統(tǒng)圖像處理之皮膚區(qū)域檢測詳解

    Python傳統(tǒng)圖像處理之皮膚區(qū)域檢測詳解

    這篇文章主要介紹了在不同情景下對傳統(tǒng)圖像進(jìn)行皮膚區(qū)域檢測,文章中的代碼具有一定的參考價值,感興趣的小伙伴可以跟隨小編一起來學(xué)習(xí)學(xué)習(xí)
    2021-12-12
  • python tqdm用法及實(shí)例詳解

    python tqdm用法及實(shí)例詳解

    在本篇文章里小編給大家整理的是一篇關(guān)于python tqdm用法及實(shí)例詳解內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。
    2021-06-06
  • 關(guān)于Python3的import問題(pycharm可以運(yùn)行命令行import錯誤)

    關(guān)于Python3的import問題(pycharm可以運(yùn)行命令行import錯誤)

    這篇文章主要介紹了關(guān)于Python3的import問題(pycharm可以運(yùn)行命令行import錯誤),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • 基于Python+Matplotlib實(shí)現(xiàn)直方圖的繪制

    基于Python+Matplotlib實(shí)現(xiàn)直方圖的繪制

    Matplotlib是Python的繪圖庫,它能讓使用者很輕松地將數(shù)據(jù)圖形化,并且提供多樣化的輸出格式。本文將為大家介紹如何用matplotlib繪制直方圖,感興趣的朋友可以學(xué)習(xí)一下
    2022-04-04
  • Python基于BeautifulSoup和requests實(shí)現(xiàn)的爬蟲功能示例

    Python基于BeautifulSoup和requests實(shí)現(xiàn)的爬蟲功能示例

    這篇文章主要介紹了Python基于BeautifulSoup和requests實(shí)現(xiàn)的爬蟲功能,結(jié)合實(shí)例形式分析了Python使用BeautifulSoup和requests庫爬取網(wǎng)站指定信息的相關(guān)操作技巧,需要的朋友可以參考下
    2019-08-08
  • pandas數(shù)值排序的實(shí)現(xiàn)實(shí)例

    pandas數(shù)值排序的實(shí)現(xiàn)實(shí)例

    篩選和排序是Excel中使用頻率最多的功能,本文主要介紹了pandas數(shù)值排序的實(shí)現(xiàn)實(shí)例,文中通過示例代碼介紹的非常詳細(xì),,感興趣的可以了解一下
    2021-07-07
  • Python推導(dǎo)式使用詳情

    Python推導(dǎo)式使用詳情

    這篇文章主要介紹了Python推導(dǎo)式使用詳情,推導(dǎo)式是?for?循環(huán)的簡化使用方法,使用推導(dǎo)式,將一個可迭代對象中的數(shù)據(jù)遍歷到某一個容器當(dāng)中,下面文章詳細(xì)介紹需要的小伙伴可以參考一下
    2022-05-05
  • pyqt5主窗口按鍵彈出子窗口的實(shí)現(xiàn)

    pyqt5主窗口按鍵彈出子窗口的實(shí)現(xiàn)

    本文主要介紹了pyqt5主窗口按鍵彈出子窗口的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02

最新評論