日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

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

發布時間:2023/12/19 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python邮件发送csv附件_Python2.7 smtplib发送带附件邮件报错STARTTLS解决方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近在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解决方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。