Python 发送邮件:使用 smtplib 和 openpyxl 从 Excel 读取邮件信息
Python 发送邮件:使用 smtplib 和 openpyxl 从 Excel 读取邮件信息
本文将介绍如何使用 Python 的 smtplib 和 openpyxl 库,从 Excel 文件中读取邮件信息,并发送邮件。
代码示例
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication
import openpyxl
wb = openpyxl.load_workbook('mail_info.xlsx') # 打开Excel文件
ws = wb['Sheet1'] # 选择指定的表格
sender='PTCN.ETS@cn.bosch.com' # 公邮
mail_user = ws['A2'].value # 读取指定单元格的值 nt 账号
mail_pwd = ws['B2'].value # nt pwd
smtpObj = smtplib.SMTP('rb-smtp-auth.rbesz01.com','25')
smtpObj.starttls()
smtpObj.login(mail_user,mail_pwd)
receiverList=[]
cc=[]
import pandas as pd
df = pd.read_excel('Project manager email address_test.xlsx')
receiverList = df['Email address'].astype(str).tolist() # convert to string
cc = df['CC'].astype(str).tolist() # convert to string
msg = MIMEMultipart()
msg['Subject'] = 'Open ProNovia E-mail reminder'
msg['From'] = sender
msg['To'] = ','.join(receiverList) #need to be a string split by ','
msg['Cc'] = ','.join(cc)
receiverList.extend(cc) # add cclist to receiverlist
# ... 邮件内容、附件等
smtpObj.sendmail(sender, receiverList, msg.as_string())
smtpObj.quit()
代码解释
import smtplib- 导入smtplib库,用于发送邮件。from email.mime.multipart import MIMEMultipart- 从email库中导入MIMEMultipart类,用于创建多部分邮件。from email.mime.text import MIMEText- 从email库中导入MIMEText类,用于创建纯文本邮件。from email.mime.application import MIMEApplication- 从email库中导入MIMEApplication类,用于创建包含附件的邮件。import openpyxl- 导入openpyxl库,用于处理 Excel 文件。wb = openpyxl.load_workbook('mail_info.xlsx')- 打开名为 'mail_info.xlsx' 的 Excel 文件,并返回一个工作簿对象。ws = wb['Sheet1']- 选择 Excel 文件中的 Sheet1 表格。sender='PTCN.ETS@cn.bosch.com'- 设置发件人邮箱地址。mail_user = ws['A2'].value- 从 Excel 表格中读取指定单元格的值作为发件人的账号。mail_pwd = ws['B2'].value- 从 Excel 表格中读取指定单元格的值作为发件人的密码。smtpObj = smtplib.SMTP('rb-smtp-auth.rbesz01.com','25')- 创建 SMTP 对象,连接 SMTP 服务器。smtpObj.starttls()- 启用 TLS 加密。smtpObj.login(mail_user,mail_pwd)- 登录发件人账号。receiverList=[]- 创建一个空列表,用于存储收件人邮箱地址。cc=[]- 创建一个空列表,用于存储抄送邮箱地址。import pandas as pd- 导入pandas库,用于读取 Excel 文件。df = pd.read_excel('Project manager email address_test.xlsx')- 从 Excel 文件中读取数据,并返回一个 DataFrame 对象。receiverList = df['Email address'].astype(str).tolist()- 选择 DataFrame 对象中名为 'Email address' 的列,并将其转换为字符串列表,存储到receiverList中。cc = df['CC'].astype(str).tolist()- 选择 DataFrame 对象中名为 'CC' 的列,并将其转换为字符串列表,存储到cc中。msg = MIMEMultipart()- 创建一个MIMEMultipart对象,用于存储邮件内容。msg['Subject'] = 'Open ProNovia E-mail reminder'- 设置邮件主题。msg['From'] = sender- 设置发件人邮箱地址。msg['To'] = ','.join(receiverList)- 将收件人邮箱地址列表转换为以逗号分隔的字符串,并设置为邮件的收件人。msg['Cc'] = ','.join(cc)- 将抄送邮箱地址列表转换为以逗号分隔的字符串,并设置为邮件的抄送。receiverList.extend(cc)- 将抄送邮箱地址列表添加到收件人邮箱地址列表中。
总结
本示例展示了如何使用 Python 发送邮件,并从 Excel 文件中读取邮件信息。您可以根据自己的需求修改代码,例如添加邮件内容、附件等。
原文地址: https://www.cveoy.top/t/topic/oYGs 著作权归作者所有。请勿转载和采集!