Python发送附件邮件-smtplib

本文介绍了一个使用Python实现的自动化邮件发送脚本,该脚本利用smtplib和email库发送带有附件的邮件,并包含了自定义的邮件地址和主题格式化功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

import sys
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.header import Header
from email.utils import parseaddr,formataddr
import datetime

#自定义发送显示
def _format_addr(s):
    name,addr = parseaddr(s)
    print(name)
    print(addr)
    return formataddr(
        Header(name,'utf-8'))

#自定义显示发送日期
def _dateshow():
    now=datetime.datetime.now()
    delta=datetime.timedelta(days=-1)
    n_days=now+delta
    sendtime = n_days.strftime('%Y%m%d')
    print(sendtime)
    return sendtime

#自定义显示邮件主题
def _format_subject(s):
    subshow,dateshow = parseaddr(s)
    return formataddr(
        Header(subshow,'utf-8'))

#发送邮件服务器
smtpserver = 'smtp.exmail.qq.com'
#发送邮箱用户名和密码
user = 'XXXX'
password = 'XXXX'
#发送邮箱
sender = 'xxxxx'
#接受邮箱
receiver = 'xxxx, xxx, xxxxx'
#抄送
acc= 'xx,xxx'

#创建一个带附件的实例
message = MIMEMultipart()
message['From'] = Header(u'XX部门','utf-8')
message['To'] = receiver
message['cc'] = acc
message['Subject'] = Header(u'%s-XXX日报明细表' % _dateshow(),'utf-8')

#邮件正文内容
text = "XXX日报明细数据请见附件:\n\n注:此邮件为自动生成,如数据有异常请联系XXX,谢谢!"
message.attach(MIMEText(text,'plain','utf-8'))

#构造附件1,传送当前目录下的text.txt文件
att1 = MIMEText(open('./text.xlsx','rb').read(),'base64','utf-8')
att1['Content-Type'] = 'application/octet-stream'
#这里的filename可以任意写,写什么名字 邮件中就显示什么名字
att1['Content-Disposition'] = 'attachment;filename="%s-testdata.xlsx"' %_dateshow()
message.attach(att1)

smtp = smtplib.SMTP()
smtp.connect(smtpserver,25)
smtp.login(user,password)
smtp.sendmail(sender,message['To'].split(',') + message['cc'].split(','),message.as_string())
smtp.quit()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值