最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用Python實(shí)現(xiàn)批量發(fā)送個(gè)性化郵件

 更新時(shí)間:2023年11月01日 07:41:56   作者:qwerrt9  
在現(xiàn)代工作環(huán)境中,我們經(jīng)常需要向多個(gè)收件人發(fā)送個(gè)性化的郵件,因此本文小編為大家整理了Python實(shí)現(xiàn)批量發(fā)送個(gè)性化郵件的示例代碼,希望對(duì)大家有所幫助

前言

在現(xiàn)代工作環(huán)境中,我們經(jīng)常需要向多個(gè)收件人發(fā)送個(gè)性化的郵件。通過(guò)使用Python編程語(yǔ)言,我們可以自動(dòng)化這個(gè)過(guò)程,從Excel文件中讀取收件人和相關(guān)數(shù)據(jù),并發(fā)送定制的郵件。

首先,導(dǎo)入所需的庫(kù)

import pandas as pd
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication
import os
from email.header import Header

然后,設(shè)置發(fā)件人郵箱和密碼

sender_email = 'your_email@example.com'
sender_password = 'your_password'

接下來(lái),設(shè)置SMTP服務(wù)器和端口號(hào)(根據(jù)你使用的郵件服務(wù)提供商)

smtp_server = 'smtp.example.com'
smtp_port = 587

創(chuàng)建SMTP連接并登錄到郵箱

server = smtplib.SMTP(smtp_server, smtp_port)
server.starttls()  # 開(kāi)啟TLS加密
server.login(sender_email, sender_password)

讀取原始Excel文件

df = pd.read_excel('path_to_excel_file.xlsx')

獲取唯一的員工姓名列表

employee_names = df['員工姓名'].unique()

獲取員工姓名和對(duì)應(yīng)的郵箱地址,假設(shè)這些信息存儲(chǔ)在一個(gè)字典中

employee_emails = {
    '張三': 'zhangsan@example.com',
    '李四': 'lisi@example.com',
    '王五': 'wangwu@example.com',
    # 添加更多員工和郵箱信息
}

遍歷員工數(shù)據(jù)并發(fā)送郵件

for employee_name in employee_names:
    employee_data = df[df['員工姓名'] == employee_name]  # 創(chuàng)建員工的數(shù)據(jù)

    # 生成員工的 Excel 文件
    employee_data_filename = f'{employee_name}.xlsx'
    employee_data.to_excel(employee_data_filename, index=False)

    # 創(chuàng)建郵件
    msg = MIMEMultipart()
    msg['From'] = sender_email
    msg['To'] = employee_emails.get(employee_name, '')  # 根據(jù)員工姓名獲取郵箱
    msg['Subject'] = '拆分?jǐn)?shù)據(jù)通知'

    body = f"尊敬的{employee_name},您的拆分?jǐn)?shù)據(jù)已經(jīng)準(zhǔn)備好,請(qǐng)查收附件。"
    msg.attach(MIMEText(body, 'plain'))

    # 添加附件
    with open(employee_data_filename, 'rb') as file:
        part = MIMEApplication(file.read(), Name=os.path.basename(employee_data_filename))
    part.add_header('Content-Disposition', 'attachment', filename=Header(os.path.basename(employee_data_filename), 'utf-8').encode())
    msg.attach(part)

    # 發(fā)送郵件
    server.sendmail(sender_email, employee_emails.get(employee_name, ''), msg.as_string())

    # 刪除生成的員工數(shù)據(jù)文件
    os.remove(employee_data_filename)

# 退出SMTP連接
server.quit()

最后,關(guān)閉與SMTP服務(wù)器的連接。

總結(jié)

通過(guò)上述Python腳本,我們可以批量發(fā)送個(gè)性化的郵件。我們首先設(shè)置發(fā)件人郵箱和密碼,然后指定SMTP服務(wù)器和端口號(hào)。接下來(lái),我們讀取包含員工信息的Excel文件,并獲取唯一的員工姓名列表和對(duì)應(yīng)的郵箱地址。然后,我們遍歷員工數(shù)據(jù),并為每個(gè)員工創(chuàng)建郵件,附帶相應(yīng)的附件。最后,我們通過(guò)SMTP服務(wù)器發(fā)送郵件,并在發(fā)送完成后刪除生成的員工數(shù)據(jù)文件。

完整代碼

import pandas as pd
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication
import os
from email.header import Header

# 設(shè)置發(fā)件人郵箱和密碼
sender_email = 'liuchunlin202205@163.com'
sender_password = '授權(quán)碼'

# 設(shè)置SMTP服務(wù)器和端口(QQ郵箱的SMTP服務(wù)器和端口)
smtp_server = 'smtp.163.com'
smtp_port = 25

# 創(chuàng)建SMTP連接
server = smtplib.SMTP(smtp_server, smtp_port)
server.starttls()  # 開(kāi)啟TLS加密

# 登錄郵箱
server.login(sender_email, sender_password)

# 讀取原始 Excel 文件
df = pd.read_excel('C:\\Users\\liuchunlin2\\Desktop\\測(cè)試數(shù)據(jù)\\員工.xlsx')

# 獲取唯一的員工姓名列表
employee_names = df['員工姓名'].unique()

# 獲取員工姓名和對(duì)應(yīng)的郵箱地址,假設(shè)這些信息存儲(chǔ)在一個(gè)字典中
employee_emails = {
    '劉備': '2823028760@qq.com',
    '孫權(quán)': '2823028760@qq.com',
    '曹操': '2823028760@qq.com',
    # 添加更多員工和郵箱信息
}

# 遍歷員工數(shù)據(jù)并發(fā)送郵件
for employee_name in employee_names:
    # 創(chuàng)建員工的數(shù)據(jù)
    employee_data = df[df['員工姓名'] == employee_name]

    # 生成員工的 Excel 文件
    employee_data_filename = f'{employee_name}.xlsx'
    employee_data.to_excel(employee_data_filename, index=False)
    employee_data_filename = f'{employee_name}.xlsx'

    # 創(chuàng)建郵件
    msg = MIMEMultipart()
    msg['From'] = sender_email
    msg['To'] = employee_emails.get(employee_name, '')  # 根據(jù)員工姓名獲取郵箱
    msg['Subject'] = '拆分?jǐn)?shù)據(jù)通知'

    body = f"尊敬的{employee_name},您的拆分?jǐn)?shù)據(jù)已經(jīng)準(zhǔn)備好,請(qǐng)查收附件。"
    msg.attach(MIMEText(body, 'plain'))

    # 添加附件
    with open(employee_data_filename, 'rb') as file:
        part = MIMEApplication(file.read(), Name=os.path.basename(employee_data_filename))
    part.add_header('Content-Disposition', 'attachment', filename=Header(os.path.basename(employee_data_filename), 'utf-8').encode())
    msg.attach(part)

    # 發(fā)送郵件
    server.sendmail(sender_email, employee_emails.get(employee_name, ''), msg.as_string())

    # 刪除生成的員工數(shù)據(jù)文件
    os.remove(employee_data_filename)

# 退出SMTP連接
server.quit()

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

相關(guān)文章

  • 淺談python中真正關(guān)閉socket的方法

    淺談python中真正關(guān)閉socket的方法

    今天小編就為大家分享一篇淺談python中真正關(guān)閉socket的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • 通俗易懂了解Python裝飾器原理

    通俗易懂了解Python裝飾器原理

    這篇文章主要介紹了通俗易懂了解Python裝飾器原理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Python中字典列表中刪除重復(fù)項(xiàng)

    Python中字典列表中刪除重復(fù)項(xiàng)

    本文主要介紹了Python中字典列表中刪除重復(fù)項(xiàng),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • 深入理解NumPy 的 np.column_stack的實(shí)現(xiàn)

    深入理解NumPy 的 np.column_stack的實(shí)現(xiàn)

    本文主要介紹了NumPy 的 np.column_stack的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2026-01-01
  • pytorch?dataset實(shí)戰(zhàn)案例之讀取數(shù)據(jù)集的代碼

    pytorch?dataset實(shí)戰(zhàn)案例之讀取數(shù)據(jù)集的代碼

    這篇文章主要介紹了pytorch?dataset實(shí)戰(zhàn)案例讀取數(shù)據(jù)集的相關(guān)知識(shí),這段代碼可以作為讀取數(shù)據(jù)集的一個(gè)DataSet類(lèi)的基礎(chǔ)類(lèi),可以擴(kuò)充進(jìn)行修改,以后有類(lèi)似需要可以拿過(guò)來(lái)修改,本文結(jié)合實(shí)例代碼給大家詳細(xì)講解,需要的朋友可以參考下
    2022-10-10
  • Python讀取預(yù)處理DICOM文件方式詳解

    Python讀取預(yù)處理DICOM文件方式詳解

    這篇文章主要介紹了Python讀取預(yù)處理DICOM文件方式,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03
  • Python實(shí)現(xiàn)迷宮自動(dòng)尋路實(shí)例

    Python實(shí)現(xiàn)迷宮自動(dòng)尋路實(shí)例

    大家好,本篇文章主要講的是Python實(shí)現(xiàn)迷宮自動(dòng)尋路實(shí)例,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話(huà)記得收藏一下
    2022-02-02
  • Flask 上傳自定義頭像的實(shí)例詳解

    Flask 上傳自定義頭像的實(shí)例詳解

    今天小編就為大家分享一篇Flask 上傳自定義頭像的實(shí)例詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-01-01
  • Python調(diào)用ChatGPT的API實(shí)現(xiàn)文章生成

    Python調(diào)用ChatGPT的API實(shí)現(xiàn)文章生成

    最近ChatGPT大火,在3.5版本后開(kāi)放了接口API,所以很多人開(kāi)始進(jìn)行實(shí)操,這里我就用python來(lái)為大家實(shí)現(xiàn)一下,如何調(diào)用API并提問(wèn)返回文章的說(shuō)明
    2023-03-03
  • python數(shù)據(jù)類(lèi)型_字符串常用操作(詳解)

    python數(shù)據(jù)類(lèi)型_字符串常用操作(詳解)

    下面小編就為大家?guī)?lái)一篇python數(shù)據(jù)類(lèi)型_字符串常用操作(詳解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-05-05

最新評(píng)論

太保市| 梁河县| 吉木萨尔县| 威信县| 唐河县| 太谷县| 增城市| 尼玛县| 宁强县| 会昌县| 昌都县| 遂溪县| 双柏县| 偃师市| 平度市| 衡阳市| 定结县| 云浮市| 和平县| 大余县| 阿拉尔市| 普兰店市| 嘉荫县| 清河县| 加查县| 通州区| 余庆县| 高要市| 景谷| 淅川县| 锦屏县| 许昌市| 巴楚县| 宜春市| 肃北| 祁门县| 三原县| 岳普湖县| 大洼县| 肃北| 鄂托克旗|