harry20222022 发表于 2023-7-31 16:37

python发送带中文附件名的邮件

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.image import MIMEImage

#设置登录及服务器信息
mail_host = 'smtp.163.com'
mail_user = 'USER'
mail_pass = 'PASS'
sender = 'SEND'
receivers = ['recive']

#设置eamil信息
#添加一个MIMEmultipart类,处理正文及附件
message = MIMEMultipart()
message["Accept-Language"] = "zh-CN"
message['From'] = sender
message['To'] = receivers[0]
message['Subject'] = 'title'
#推荐使用html格式的正文内容,这样比较灵活,可以附加图片地址,调整格式等
with open('ce.html','r',encoding='utf-8') as f:
    content = f.read()
#设置html格式参数
part1 = MIMEText(content,'html','utf-8')
#添加一个txt文本附件
with open('美国.txt','r')as h:
    content2 = h.read()
#设置txt参数
part2 = MIMEText(content2,'plain','utf-8')
#附件设置内容类型,方便起见,设置为二进制流
part2['Content-Type'] = 'application/octet-stream'
#设置附件头,添加文件名
part2.add_header("Content-Disposition", "attachment", filename=("gbk", "", "测试结果.txt"))
#part2['Content-Disposition'] = 'attachment;filename="demo.txt"'

#添加照片附件
with open('无标题2.png','rb')as fp:
    picture = MIMEImage(fp.read())
    #与txt文件设置相似
    picture['Content-Type'] = 'application/octet-stream'
    picture['Content-Disposition'] = 'attachment;filename="picture.png"'
#将内容附加到邮件主体中
message.attach(part1)
message.attach(part2)
message.attach(picture)

#登录并发送
try:
    smtpObj = smtplib.SMTP()
    smtpObj.connect(mail_host,25)
    smtpObj.login(mail_user,mail_pass)
    smtpObj.sendmail(
      sender,receivers,message.as_string())
    print('success')
    smtpObj.quit()
except smtplib.SMTPException as e:
    print('error',e)

vethenc 发表于 2023-7-31 17:16

感谢分享,帮楼主格式美化一下。

```

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.image import MIMEImage

#设置登录及服务器信息
mail_host = 'smtp.163.com'
mail_user = 'USER'
mail_pass = 'PASS'
sender = 'SEND'
receivers = ['recive']

#设置eamil信息
#添加一个MIMEmultipart类,处理正文及附件
message = MIMEMultipart()
message["Accept-Language"] = "zh-CN"
message['From'] = sender
message['To'] = receivers
message['Subject'] = 'title'
#推荐使用html格式的正文内容,这样比较灵活,可以附加图片地址,调整格式等
with open('ce.html','r',encoding='utf-8') as f:
    content = f.read()
#设置html格式参数
part1 = MIMEText(content,'html','utf-8')
#添加一个txt文本附件
with open('美国.txt','r')as h:
    content2 = h.read()
#设置txt参数
part2 = MIMEText(content2,'plain','utf-8')
#附件设置内容类型,方便起见,设置为二进制流
part2['Content-Type'] = 'application/octet-stream'
#设置附件头,添加文件名
part2.add_header("Content-Disposition", "attachment", filename=("gbk", "", "测试结果.txt"))
#part2['Content-Disposition'] = 'attachment;filename="demo.txt"'

#添加照片附件
with open('无标题2.png','rb')as fp:
    picture = MIMEImage(fp.read())
    #与txt文件设置相似
    picture['Content-Type'] = 'application/octet-stream'
    picture['Content-Disposition'] = 'attachment;filename="picture.png"'
#将内容附加到邮件主体中
message.attach(part1)
message.attach(part2)
message.attach(picture)

#登录并发送
try:
    smtpObj = smtplib.SMTP()
    smtpObj.connect(mail_host,25)
    smtpObj.login(mail_user,mail_pass)
    smtpObj.sendmail(
      sender,receivers,message.as_string())
    print('success')
    smtpObj.quit()
except smtplib.SMTPException as e:
    print('error',e)
```

天轩科技 发表于 2023-7-31 19:08

vethenc 发表于 2023-7-31 17:16
感谢分享,帮楼主格式美化一下。

```


【懂车帝】 1. 朋友同事一律不能到家里。 2. 不要随便带上司来家里吃饭。 3. 不要让她一个人在家点外卖倒垃圾。 4. 不要随便让邻居进门。 5. 有弟弟的话不要让她一个人在家。 6. 父亲老了让他



你这条签名。看的时候可真费劲

JokerDa 发表于 2023-7-31 18:33

学习了 谢谢分享

choujie1689 发表于 2023-7-31 18:39

学习了,期待更多

CRG_44 发表于 2023-7-31 18:54

这个我当时写了程序有页面的,直接双击.exe就可以运行

鹿鸣 发表于 2023-7-31 19:55

感谢分享,学习一下

q444833950 发表于 2023-7-31 21:26

感谢楼主,真的很方便,替换直接就能使用了{:1_893:}{:1_893:}

siliverfox 发表于 2023-7-31 23:34

我是初入门的该从哪里学啊?

vethenc 发表于 2023-8-1 07:02

天轩科技 发表于 2023-7-31 19:08
【懂车帝】 1. 朋友同事一律不能到家里。 2. 不要随便带上司来家里吃饭。 3. 不要让她一个人在家点外卖倒 ...

论坛等级对应的签名档大小有限制,系统自动做了节选,原文很长很精彩{:300_966:}
页: [1] 2
查看完整版本: python发送带中文附件名的邮件