博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python2.7 smtplib发送带附件邮件报错STARTTLS解决方法
阅读量:6005 次
发布时间:2019-06-20

本文共 1744 字,大约阅读时间需要 5 分钟。

         最近在SIOMP系统中添加一项功能时,即自动发送带附件邮件到指定邮箱时,发现在发送时报错:错误信息:STARTTLS extension not supported by server.很是奇怪,但发送无附件邮件时,可以正常发送,且不报错,前期以为是代码存在问题,如果调出对应的错误信息反馈,似乎和代码没有什么关系;

 

详细代码如下所示:

# -*- coding: utf-8 -*-import emailfrom email.mime.text import MIMETextfrom email.mime.multipart import MIMEMultipartimport smtplibmailsenduser = "report@lidongni.com"mailreceiveuser = "lidongni@lidongni.com"mailhead = "TEST邮件"mailcontent = "测试邮件"mailsmtpserver = "smtp.lidongni.com"mailsenduser1 = "report"mailsenduserpasswd = "789456123"filepath = r".\123.csv"try :    msg=email.mime.multipart.MIMEMultipart()    msg['from']=mailsenduser    msg['to']=mailreceiveuser    msg['subject']=mailhead    content=mailcontent    txt=email.mime.text.MIMEText(content,_subtype='plain',_charset='gb2312')    msg.attach(txt)    att1 = email.mime.text.MIMEText(open('%s' % filepath,'rb').read(),'base64','gb2312')    att1["Content-Type"] = 'application/octet-stream'    att1["Content-Disposition"] = 'attachment;filename="123.csv"'    msg.attach(att1)    smtp=smtplib.SMTP(mailsmtpserver,'25')    smtp.ehlo()    smtp.starttls()    smtp.ehlo()    smtp.login(mailsenduser1,mailsenduserpasswd)    smtp.sendmail(mailsenduser,mailreceiveuser,str(msg))    smtp.quit()    print "邮件发送成功!"except Exception, e:    print "%s" % e

报错信息:

        邮件发送失败,错误信息:STARTTLS extension not supported by server.

原因分析:

        在个人电脑上发送代附件邮件没有问题,上传至管理平台服务器,出现无法正常发送邮件情况,且报错信息如上所述,分析原因肯定和STARTTLS有关系,查看对应相关信息,STARTTLS是对纯文本通信协议的扩展。它提供一种方式将纯文本连接升级为加密连接(TLS或SSL),而不是另外使用一个端口作加密通信。显然和TLS或SSL有关系,于是查看对应Exchange邮件服务器发现以下问题;由于采用Exchange邮件系统进行发送,在邮件系统中添加了对应的匿名允许发送邮件功能,且刚好这台服务器在允许匿名发送邮件的IP内,且身份验证未启用传输层安全性(TLS),故无法正常发送邮件;

解决方法:

        1、将对应的服务器IP从允许匿名发送邮件名单中移除,测试发送带附件邮件成功;

        2、将对应的允许匿名发送邮件的集线器身份验证允许“传输层安全性(TLS)”,测试发送带附件邮件成功;

详细设置方法如下所示:

至此问题解决;

转载地址:http://cusmx.baihongyu.com/

你可能感兴趣的文章
spark第六篇:Spark Streaming Programming Guide
查看>>
基于拼音的搜索
查看>>
pythonfile的知识点
查看>>
搭建开发板的测试环境
查看>>
LeetCode 283. Move Zeroes
查看>>
【第二组】项目冲刺(Alpha版本)第二次每日例会 2017/7/12
查看>>
input整理
查看>>
日期计算
查看>>
文本文件,sublime打开中文乱码,或是chrome打开中文乱码
查看>>
重拾单片机
查看>>
route 配置默认网关
查看>>
js正则、js全选、反选、全不选、ajax批删
查看>>
中断系统
查看>>
括号配对问题
查看>>
无主之地1
查看>>
Foundations of Machine Learning: Boosting
查看>>
前端基本功之选择题
查看>>
今天一定要纪念一下
查看>>
windows系统很受欢迎,linux系统很安全,为什么少有人使用linux
查看>>
站立会议(1)
查看>>