最近接手了一个 py 机器人的开发,发现不论传入的附件路径是变量、字符串、先编码后解码的字符串都解决不了名称乱码。
打开源码一看,是这个逻辑:
def send_smtp_mail(server=None,port=25,psw=None,sender=None,receivers=None,cc=None,bcc=None,subject=None,body=None,attachments=None,ssl='no'):
'''
SMTP发送邮件
server:smtp服务器 port:端口号 psw:登陆密码 sender:发送方 receivers:接收者
cc:抄送 bcc:密抄 subject:标题 body:邮件正文 attachments:附件路径
'''
__logger.debug('smtp Send mail:[' + str(server) + '][' + str(port) + ']')
re = []
try:
msgRoot = MIMEMultipart()
#msgRoot['Subject'] = subject 构造标题
msgRoot['Subject'] = Header(subject, 'utf-8').encode()
msgRoot['Cc'] = "".join(str(cc))
msgRoot['Bcc'] = "".join(str(bcc))</