极速系列06—利用python批量发送邮件

python发邮件需要掌握两个模块:smtplib和email,这俩模块是python自带的,只需import即可使用。smtplib模块主要负责发送邮件,email模块主要负责构造邮件。

1 介绍

smtplib模块主要负责发送邮件:是一个发送邮件的动作,连接邮箱服务器,登录邮箱,发送邮件(有发件人,收信人,邮件内容)。
email模块主要负责构造邮件:指的是邮箱页面显示的一些构造,如发件人,收件人,主题,正文,附件等。

# 发送邮件的工具包
import smtplib

# 实例化邮箱:简单邮件传输协议(英语:Simple Mail Transfer Protocol,缩写:SMTP)是一个在互联网上传输电子邮件的标准。
'''
smtplib.SMTP():实例化SMTP()
'''
smtp = smtplib.SMTP() 

# 设置邮箱服务器和端口
'''
host:指定连接的邮箱服务器。常用邮箱的smtp服务器地址如下:
新浪邮箱:smtp.sina.com,新浪VIP:smtp.vip.sina.com,搜狐邮箱:smtp.sohu.com,126邮箱:smtp.126.com,139邮箱:smtp.139.com,163网易邮箱:smtp.163.com。
port:指定连接服务器的端口号,默认为25.
'''
smtp.connect(host,port) 

# 登录邮箱
'''
username:登录邮箱的用户名。
password:登录邮箱的密码,网易邮箱一般是网页版,需要用到客户端密码,需要在网页版的网易邮箱中设置授权码,该授权码即为客户端密码。(开启POP3/SMTP服务,开启后会生成一个授权密码,用授权密码代替邮箱密码进行设置)
'''
smtp.login(username, password) 

# 设置发件人,收件人,邮件内容
'''
from_addr:邮件发送者地址
to_addrs:邮件接收者地址。字符串列表['接收地址1','接收地址2','接收地址3',...]或'接收地址'
msg:发送消息:邮件内容。一般是msg.as_string():as_string()是将msg(MIMEText对象或者MIMEMultipart对象)变为str。
'''
smtp.sendmail(from_addr, to_addrs, msg...) 

# 退出邮箱
'''
quit():用于结束SMTP会话。
'''
smtp.quit()
# 发送邮件的工具包
import smtplib   
from email.mime.multipart import MIMEMultipart    
from email.mime.text import MIMEText

username = '发件人邮箱'
password = '授权码'

sender = '收件人邮箱'
receiver = '发件人邮箱'

smtp = smtplib.SMTP() 
smtp.connect('邮箱的smtp服务器地址',25) 
smtp.login(username, password) 
smtp.sendmail(sender, receiver, msg.as_string()) 
smtp.quit()

2 实例

# 导入发送邮件的工具包
import smtplib  
# 导入邮件内容的工具包
from email.mime.multipart import MIMEMultipart    
from email.mime.text import MIMEText   

# 设置登录的用户名和密码
username = '****@163.com'
password = 'E*****X'

# 读取收件人邮箱和邮件内容
df = pd.read_excel('./用户信息.xlsx')
for i in range(len(df)):
    receiver_name = df['用户姓名'][i]
    receiver_email = df['用户邮箱'][i]
    meet_time = df['开会时间'][i]
    # 设置发件人和收件人邮箱
    sender = '****@163.com'
    receiver = f'{receiver_email}'
    # 定义邮件主题、发件人、收件人
    msg = MIMEMultipart('mixed') 
    msg['Subject'] = f'{receiver_name}的会议邀请'
    msg['From'] = '****@163.com'
    msg['To'] = f'{receiver_email}'
    #构造html邮件内容,从邮箱复制出来
    html = f"""
    <div style="margin:0;">{receiver_name},<span style="background-color: rgb(221, 64, 50);">早上好</span>:</div>
    <div style="margin:0;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 请于<span style="color: rgb(221, 64, 50);">{meet_time}</span>到会议室开会!!!<br></div>
    """
    text_html = MIMEText(html, 'html', 'utf-8')
    msg.attach(text_html) 
    # 发送邮件
    smtp = smtplib.SMTP() 
    smtp.connect('smtp.163.com',25) 
    smtp.login(username, password) 
    smtp.sendmail(sender, receiver, msg.as_string()) 
    smtp.quit()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值