使用python发送带附件的邮件给多个收件人

1.导入第三方模块,发送电子邮件要用到的模块主要有smtplib,email两个。

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication

2.添加发件人及收件人的信息,其中password不是发件人邮箱的登录密码,而是邮箱的授权码,需要在电子邮箱开启这个功能才可以使用第三方客户端登录电子邮箱,一般在邮箱的设置里,开启后可获得授权码。

username = '11111XXXX@qq.com'
password = 'xxxxxxx'
sender = username
#receivers接下来还要split(',')才可以发送到多个收件人
receivers = '10xxxx@qq.com,abcd1111@163.com'

3.设置邮件信息

# 如名字所示: Multipart就是多个部分
msg = MIMEMultipart()
msg['Subject'] = '这是主题'
msg['From'] = sender
msg['To'] = receivers
 
# 下面是文字部分,也就是纯文本,如果正文内容较多可保存在一个文本文件里,然后再读取到一个变量添加到正文内容
puretext = MIMEText('这是正文内容')
msg.attach(puretext)

# 下面是附件部分 ,这里xlsx类型的附件
xlsxpart = MIMEApplication(open('新建 Microsoft Excel 工作表.xlsx', 'rb').read())
xlsxpart.add_header('Content-Disposition', 'attachment', filename='测试.xlsx')
msg.attach(xlsxpart)

4.登录并发送邮件

try:
    client = smtplib.SMTP()
    client.connect('smtp.qq.com',25)
    client.login(username, password)
    #receivers.split(',')才能成功发送给多个收件人
    client.sendmail(sender, receivers.split(','), msg.as_string())
    client.quit()
    print( '邮件发送成功!')
except smtplib.SMTPRecipientsRefused:
    print( 'Recipient refused')
except smtplib.SMTPAuthenticationError:
    print( 'Auth error')
except smtplib.SMTPSenderRefused:
    print( 'Sender refused')
except smtplib.SMTPException as e:
    print(e.message)
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值