python自动化--邮箱发送

1、导入邮箱发送所需要的包

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.header import Header

2、初始化邮箱配置

class AutoEmail(object):
    def __init__(self):
        self.mailserver = "******"  # 邮箱服务器地址
        self.username_send = '******'  # 邮箱用户名
        self.password = '******'  # 邮箱密码:需要使用授权码
        self.username_recv = '******'  # 收件人,多个收件人用逗号隔开
        # 生成一个空的带附件的邮件实例
        self.message = MIMEMultipart()

3、定义一个发送邮件的函数

本例以QQ邮箱,发送xlsx文件为模板

    def send_email(self):
        # 将正文以text的形式插入邮件中
        self.message.attach(MIMEText('报告', 'plain', 'utf-8'))
        # 生成发件人名称(这个跟发送的邮件没有关系)
        self.message['From'] = Header('工具人', 'utf-8')
        # 生成收件人名称(这个跟接收的邮件也没有关系)
        self.message['To'] = Header('cc', 'utf-8')
        # 生成邮件主题
        self.message['Subject'] = Header('日报', 'utf-8')
        # 读取附件的内容 path是excel文件路径
        att1 = MIMEText(open(path,'rb').read(), 'base64', 'utf-8')
        att1.add_header("Content-Type",'application/octet-stream')
        # 生成附件的名称
        att1.add_header("Content-Disposition",'attachment',filename='测试.xlsx')
        # 将附件内容插入邮件中
        self.message.attach(att1)
        smtp = smtplib.SMTP_SSL('smtp.qq.com', port=465)  # QQ邮箱的服务器和端口号
        smtp.login(self.username_send, self.password)  # 登录邮箱
        # 参数分别是发送者,接收者,第三个是把上面的发送邮件的内容变成字符串
        smtp.sendmail(self.username_send, self.username_recv, self.message.as_string())
        smtp.quit()  # 发送完毕后退出smtp
        print('success')

4、运行文件

if __name__ == '__main__':
    autoemail = AutoEmail()
    autoemail.send_email()

5、小结

邮件有可能被当做垃圾邮件处理,需要做好标签避免被过滤了。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值