如何用python批量發(fā)送工資條郵件
工資excel表格格式如下所示:
使用python批量給每位員工發(fā)送工資條信息,格式如下:
思路:
首先是加載excel,獲取當(dāng)前sheet表格
salay = load_workbook('大唐建設(shè)集團-2022年5月工資.xlsx', data_only=True) ws = salay.active
登錄所使用的發(fā)件郵箱服務(wù)器
# 登錄郵箱服務(wù)器 smtp_obj = smtplib.SMTP_SSL('smtp.qq.com', 465) # smtp_obj.set_debuglevel(1) smtp_obj.login('vision.wangpc@foxmail.com', "tsjodbaab") # 騰訊郵箱,客戶端登錄使用授權(quán)碼
這里有坑:郵箱登錄的的賬戶密碼有的郵箱是密碼,有的是使用授權(quán)碼,騰訊qq郵箱就是使用授權(quán)碼
使用新浪郵箱時候,登錄不上服務(wù)器,原因未知!
遍歷sheet表,獲取表頭信息。
count = 0 for row in ws: count += 1 if count == 1: # 表頭信息讀取一次即可 table_header = '<thead>' for cell in row: table_header += f'''<th >{cell.value}</th>''' table_header += '</thead>'
讀取excel第一行,構(gòu)造表頭,第一行只讀取一次,所以加了一個計數(shù)變量.count
table_header
是構(gòu)造工資條表頭信息的html文本
讀取每一行數(shù)據(jù),獲取員工姓名、郵箱以及工資條信息,構(gòu)造郵件正文的完整內(nèi)容!
else: msg_context_data = '<tr>' for cell in row: # 一次讀取員工工資條 msg_context_data += f'''<td>{cell.value}</td>''' msg_context_data += '</tr>' mail = row[1].value name = row[2].value msg_context = f''' <h3>{name},你好:</h3> <p>請查收你2022-05月的工資條</p> <table border="1px"> {table_header} {msg_context_data} </table> '''
msg_context_data
是工資條信息那一行html格式的文本數(shù)據(jù)
每讀取一行數(shù)據(jù),發(fā)送一封郵件
msg = MIMEText(msg_context, 'html', 'GBK') msg['from'] = Header('xx人力資源部', 'GBK') msg['To'] = Header('name', 'GBK') msg['Subject'] = Header('2022.5月工資條', 'GBK') smtp_obj.sendmail('vision.wangpc@foxmail.com', mail, msg.as_string()) # 沒讀取一行信息發(fā)送一封郵件
總結(jié)反思:
這個小程序就是復(fù)習(xí)實踐python發(fā)郵件以及簡單的excel的處理,python的用處還是很大,也很貼近實際生活,有待多多發(fā)覺!
到此這篇關(guān)于如何用python批量發(fā)送工資條郵件的文章就介紹到這了,更多相關(guān)python發(fā)送工資條郵件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python中的getter與setter及deleter使用示例講解
這篇文章主要介紹了Python中的getter與setter及deleter使用方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2023-01-01使用python?matplotlib?contour畫等高線圖的詳細過程講解
最近學(xué)習(xí)了matplotlib中的高線圖的繪制,所以下面這篇文章主要給大家介紹了關(guān)于使用python?matplotlib?contour畫等高線圖的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-08-08python神經(jīng)網(wǎng)絡(luò)MobileNet模型的復(fù)現(xiàn)詳解
這篇文章主要為大家介紹了python神經(jīng)網(wǎng)絡(luò)MobileNet模型的復(fù)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-05-05python使用標(biāo)準庫根據(jù)進程名如何獲取進程的pid詳解
Python有一套很有用的標(biāo)準庫(standard library)。標(biāo)準庫會隨著Python解釋器,一起安裝在你的電腦中的,所以下面這篇文章主要給大家介紹了關(guān)于python使用標(biāo)準庫根據(jù)進程名如何獲取進程pid的相關(guān)資料,需要的朋友可以參考下。2017-10-10