个人记录使用
会用到smtplib 跟email,因为具体使用方法可以百度
源码
def send_eamil(receiver):
global msg
sender = \'***@163.com\'
psd = \'***\' #是授权密码不是邮箱登录密码
mail_host=\'smtp.163.com\'
subject=\'资源\'
to_addrs=receiver.split(\',\')
#创建带附件的实例
msg=MIMEMultipart()
msg[\'Subject\']=Header(subject,\'utf-8\')
msg[\'from\']=Header(sender,\'utf-8\')
msg[\'To\']=\",\".join(to_addrs) #多个收件人
#创建正文,把文本添加到msg类中
msg.attach(MIMEText(\'资源,请查看附件\',\'plain\',\'utf-8\'))
#构造附件
file_path=\'文件路径\'
att1=MIMEText(open(file_path,\'rb\').read(),
\' 64\',\'utf-8\')
#att1[\"Content-Type\"]=\'application/octet-stream;name=%s\'%Header(filename,\'utf-8\').encode(\'utf-8\') #与下边功能一致
#att1[\"Content-Disposition\"]=\'attachment;file_name=%s\'%Header(\'%s\'%filename,\'utf-8\').encode(\'utf-8\') #与下边功能一致
att1.add_header(\'Content-Disposition\', \'attachment\', filename=名字随便起)#没有这三行会出现文件结尾变成bin现象
att1.add_header(\'Content-ID\', \'<0>\')
att1.add_header(\'X-Attachment-Id\', \'0\')
msg.attach(att1)#将附件添加到类文件
try:
smtp=smtplib.SMTP()
smtp.set_debuglevel(1) #显示发送过程
smtp.connect(mail_host)
smtp.login(sender,psd)
smtp.sendmail(sender,to_addrs,msg.as_string())
smtp.quit()
print(\'发送成功\')
except Exception as result:
print(\'发送失败,异常为%s\'%result)
if __name__ == \'__main__\':
make_excel()
send_eamil(\'***@qq.com,*@126.com\')
遇到的问题
1.出现554错误:由于网易机制问题,需要开启授权码,设置好就行了
2.发出的附件出现后缀为bin的现象是因为没加header以下是例子,代码也有标注,两种方式都行,个人喜欢简短一些的
name.add_header(\'Content-Disposition\', \'attachment\', file_name=\'C:/Users/yue.sun/Desktop/自己/py/工作/逸云节点.xls\')
name.add_header(\'Content-ID\',\'<0>\')
name.add_header(\'X-Attachment-Id\', \'0\')
继续阅读与本文标签相同的文章
-
阿里云开发者社区问答栏目提问规范
2026-05-18栏目: 教程
-
小伙上演“无人驾驶”手舞足蹈,女网友拍视频发朋友圈结果“悲剧了”……
2026-05-18栏目: 教程
-
迎来“无后门协议”!持续压制无效?5G建设选择在于技术问题
2026-05-18栏目: 教程
-
Pepper Metrics - Spring/Spring Boot应用性能监控利器
2026-05-18栏目: 教程
-
ZKEYS:数字化时代,IDC云化解决方案的探索实践
2026-05-18栏目: 教程
