最近在SIOMP系统中添加一项功能时,即自动发送带附件邮件到指定邮箱时,发现在发送时报错:错误信息:STARTTLS extension not supported by server.很是奇怪,但发送无附件邮件时,可以正常发送,且不报错,前期以为是代码存在问题,如果调出对应的错误信息反馈,似乎和代码没有什么关系;
详细代码如下所示:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# -*- coding: utf-8 -*-
import email
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
import smtplib
mailsenduser = "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)”,测试发送带附件邮件成功;
详细设置方法如下所示:
至此问题解决;
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com