Python+网易企业邮箱 做邮件自动分发的时候遇到的一些问题记录

我用python+企业网易邮箱做邮件自动分发的时候遇到了两大问题:一是Connection unexpectedly closed;二是收到的excel附件是.bin结尾的。花了一下午时间,终于弄明白怎么回事了。


在这里插入图片描述



1 问题一: 关于Connection unexpectedly closed

1.1 问题出现原因

邮箱服务器地址与邮箱端口号不匹配

1.2 解决办法

  • 1、找到你的网易企业邮箱的POP/SMTP/IMAP服务器地址。网易企业邮箱服务器地址与端口设置
    进去输入你网易企业邮箱**@后面的部分**,会看到下面这些东东:
    在这里插入图片描述
    一般是SMTP协议+服务器地址+25端口。不行就挨个试一遍,总有一个是。
  • 2、这是找网易企业邮箱和它的端口,二者对上,就能成功发送邮件了

2 问题二: 邮件发送成功了,但接收方收到的excel附件是.bin结尾的

2.1 问题出现的原因

文件名/文件内容中有中文,无法进行正常编码

2.2 解决办法

  • 1、指定编码的时候将文件名中的中文换成英文
xlsxpart = MIMEApplication(open(file_path, 'rb').read())
xlsxpart.add_header('Content-Dispositon','attachment', filename='file.xls'))

绝大多数情况下这一步就够了,如果不行就试试第二步

  • 2、make_header将文件内容及名称编码强转为utf-8
from email.header import make_header
excel_apart = MIMEApplication(open(file_path, 'rb').read())
excel_apart["Content-Type"] = 'application/octet-stream;name="%s"' % make_header([(file_name, 'UTF-8')]).encode('UTF-8')
excel_apart["Content-Disposition"] = 'attachment;filename= "%s"' % make_header([(file_name, 'UTF-8')]).encode('UTF-8')

转完之后应该就可以了


Logo

一站式 AI 云服务平台

更多推荐