python-MIMEMultipart–邮件发送

 

python-MIMEMultipart--邮件发送

from datetime import datetimeimport smtplib
import email.mime.text import MIMEText
# 构建邮件头
from email.header import Header
from email.mime.multipart import MIMEMultipart

def main():
    #today = datetime.today()
    #date_str = today.strftime("%Y-%m-%d")    #获取当天时间,格式2023-10-01
    #发信方的信息:发信邮箱,QQ邮箱授权码(QQ邮箱需要申请授权码,其他邮箱基本只需要邮箱登录密码)
    from_addr = '1200000@qq.com'
    password = 'behsdfkjha'
    #收信方邮箱 使用列表可一个或多个
    to_addrs =[ '23432@qq.com','123@qq.com']
    #抄送方邮箱
    cc_list = ['2789@qq.com']
    #收信方+抄送方,后面server.sendmail方法用到
    to_cc = to_addrs + cc_list
    #发信服务器
    smtp_server = 'smtp.qq.com'    #此为qq邮箱服务器地址,自己确定发件方邮箱的服务器地址    
    # 创建一个带附件的邮件实例
    message=MIMEMultipart()
    #邮箱正文内容
    success_text = "正文内容"
    mail_inside_success = MIMEText(success_text,'plain','utf-8')             #传入文本,文本类型(plain)、文本编码
    #设置邮件头信息
    message['From'] = Header(from_addr)                   #发送者
    message['TO'] = Header(",".join(to_addrs))    #接收者,因为是多个邮件,所以需要用join
    message['Cc'] = Header(",".join(cc_list))             #抄送者
    message['Subject'] = Header(f'{date_str}巡检报告')     #标题
    message.attach(mail_inside_success)                   #传入邮件正文的内容
    #通过MIMEText构造附件文本txt,excel等 
#Content-Type(内容类型)定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件 
#application/octet-stream:二进制流数据(如常见的文件下载)
# Content-Disposition激活附件下载对话框。Content-Disposition有两种属性:inline 和 attachment
# inline:默认值,将文件内容直接显示在页面;
# attachment:弹出对话框,让用户下载
# filename:定义下载文件的文件名。 attr1=MIMEText(open('D:/go/python/自动化巡检/故障测试表.xlsx','rb').read(),'base64','utf-8') #读取本地xlsx,路径用/不要 attr1["content_Type"]='application/octet-stream' attr1.add_header('Content-Disposition', 'attachment', filename='自定义名称.xlsx') message.attach(attr1)
#通过MIMEImage构造附件2图片
att2=MIMEImage(open('E:/path/filename.jpg','rb').read())
att2["Content-Type"]='application/octet-stream'
att2.add_header('Content-Disposition', 'attachment', filename='fujian3.jpg')
message.attach(att2)
#通过MIMEAudio构造附件3。MEMEAudio需要定义音频类型
att3=MIMEAudio(open('E:/path/filename.mp3','rb').read(),'audio')
att3["Content-Type"]='application/octet-stream'
att3.add_header('Content-Disposition', 'attachment', filename='fujian4.mp3')
message.attach(att3) try: #开启发信服务,这里使用的是非加密传输 server = smtplib.SMTP(smtp_server,25) #登录发信邮箱 server.login(from_addr,password) #发送邮件 server.sendmail(from_addr,to_cc,message.as_string()) #发送方,所有收件人(包含抄送者),之前message构建的邮件信息 #关闭服务器 server.quit() print("邮件发送成功") except smtplib.SMTPException as e: print('邮件发送失败{e}')

if __name__ == '__main__':
main()

python-MIMEMultipart--邮件发送

__EOF__

python-MIMEMultipart--邮件发送
本文作者: 卡卡罗特,你来了 本文链接: https://www.cnblogs.com/liweifeng888/p/17777211.html 关于博主: 评论和私信会在第一时间回复。或者直接私信我。 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处! 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...