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

详细代码如下所示:

# -*- 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)”,测试发送带附件邮件成功;

详细设置方法如下所示:

wps3CB7.tmp

wps3CB8.tmp

至此问题解决;

©著作权归作者所有:来自51CTO博客作者levinbin的原创作品,谢绝转载,否则将追究法律责任

python邮件发送csv附件_Python2.7 smtplib发送带附件邮件报错STARTTLS解决方法相关推荐

  1. mysql adminer 导入csv_mysql导入csv的4种报错的解决方法

    以此悼念我今天踩过的4个坑-- 坑一:local的错 报错: error 3948 (42000): loading local data is disabled; this must be enab ...

  2. python googletrans_Python使用googletrans报错的解决方法

    问题 最近在工作中发现了一个问题,Python代码一直用着免费的Google翻译API插件googletrans,这两天突然就报错了: Traceback (most recent call last ...

  3. Python语言importError:cannot import name ‘InvalidArgumentException‘报错的解决方法:

    Python语言importError:cannot import name 'InvalidArgumentException'报错的解决方法: 参考文章: (1)Python语言importErr ...

  4. Python之Datasets库安装报错的解决方法

    Python之Datasets库安装报错的解决方法 Problem 想要run一下最近在看的有关Domain Adaptation的论文实现代码,文中使用了Datasets库,习惯性使用Anacond ...

  5. 发送自动邮件时Could not connect to SMTP host: 10.1.1.195, port: 25;报错的解决方法

    最近在测试公司内部系统自动发送邮件功能时,一直在报错: javax.mail.SendFailedException: Sending failed;nested exception is: java ...

  6. 神奇的python(五)之python强制退出报错(异常)解决方法

    简介:python程序在执行时,有时候由于某些模块冲突或者是定时器冲突,会出现很多奇怪的错误,为此我们需要让python程序在退出时免受这些问题的干扰. (1) 常用的信号类型: SIGINT 终止进 ...

  7. python中升级pip报错_linux系统下pip升级报错的解决方法

    Pip 安装 1.在python中提供了一个get-pip.py;下面是地址 https://bootstrap.pypa.io/get-pip.py 2.在Linux下执行curl https:// ...

  8. python assertion failed_PyCharm报错与解决方法一览

    报错: IndentationError:expected an indented block 分析: 缩进错误! 解决: 你只要在出现错误的那一行,按空格或Tab(但不能混用)键缩进就行.往往有的人 ...

  9. 复制的python代码格式错误_新手常见6种的python报错及解决方法

    此篇文章整理新手编写代码常见的一些错误,有些错误是粗心的错误,但对于新手而已,会折腾很长时间才搞定,所以在此总结下我遇到的一些问题.希望帮助到刚入门的朋友们. 1.NameError变量名错误 报错: ...

最新文章

  1. java字符串缓冲池分析
  2. python扫描端口脚本_Python实现的端口扫描功能示例
  3. 当杯子中的空气被抽走会发生什么?
  4. java实现数组排序代码_Java使用选择排序法对数组排序实现代码
  5. STM32之DAC例程
  6. 关于搞技术的一点思考
  7. 国内手机厂商要复活“大哥大” 网友:想买
  8. webdriver.chrome()禁止加载图片
  9. Android11新版本,一加8系列喜提Android11稳定版更新
  10. psp用ps1模拟器_PSP自制系统用PS模拟器玩PS游戏指南
  11. 【信息技术】【2014.07】交通监控中的车辆跟踪与速度估计
  12. 数据处理-倾斜摄影OSGB合并根节点
  13. 100套精品PPT模板免费拿!以后再也不用怕老板叫你制作PPT了
  14. 2013计算机学科排名,2013年世界大学学科排名 计算机科学.pdf
  15. linux安装界面键盘失灵,安装win7鼠标键盘失灵怎么办_win7安装界面鼠标键盘失灵解决方法【147下载站】...
  16. linux 系统启动服务setup设置
  17. 华为服务器rh-2286远程控制无法使用
  18. 【逼格瞬间提升100%】摆脱广告烦恼,拥有这5款插件,帮助你工作摸鱼两不误
  19. 文件分类服务器,云服务器 搭建 文件分类存储
  20. 树的三叉链的创建和遍历

热门文章

  1. SAP IBASE category 01 download
  2. PPR data model
  3. SAP CRM WebClient UI和CRM Fiori Account里显示Opportunity逻辑
  4. MongoDB最简单的入门教程之五-通过Restful API访问MongoDB
  5. jenkins搭建_自动化测试系列之jenkins配置搭建环境
  6. linux磁带存储,linux 磁带文件操作分析
  7. 怎么绕过论坛回复_铝散热片铆钉怎么压得快,有没有自动化设备
  8. 贵州计算机专业强的专科学校,贵州排名靠前的五年制大专学校--贵州计算机学校...
  9. python中输出菱形_用python打印菱形的实操方法和代码
  10. html语言右对齐,在HTML中右对齐块元素