ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python自动化--邮箱发送

2022-01-10 17:58:26  阅读:154  来源: 互联网

标签:__ python self smtp -- 邮箱 message 邮件


学习笔记

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、小结

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

标签:__,python,self,smtp,--,邮箱,message,邮件
来源: https://blog.csdn.net/weixin_43464731/article/details/122415745

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有