这几天我在准备新的项目,需要用到大量的邮件推送服务支撑,肯定不能用126、163、qq之类的,于是使用了阿里云的邮件推送服务,价格比较实惠。但是,从昨晚20点开始折腾到今早6:34,他喵的带附件的邮件无法被亚马逊的邮件服务器接收。一晚上呀!!!哥呀,我给自己的QQ、GMAIL邮箱发测试邮件,可以收到邮件,一切正常,就他喵的亚马逊收不到。
起初我以为自己程序写错了,MIME协议使用没问题呀,以下是程序:
# coding=utf-8 from email.mime.base import MIMEBase from email.mime.multipart import MIMEMultipart from email import encoders import smtplib from email.utils import parseaddr, formataddr from email import encoders from email.header import Header from email.mime.text import MIMEText from email import utils from email.mime.multipart import MIMEMultipart from email.mime.base import MIMEBase from email.utils import parseaddr, formataddr from email.mime.application import MIMEApplication def _format_addr(s): name, addr = parseaddr(s) return formataddr((Header(name, 'utf-8').encode(), addr)) stmp_user = "kindle@mail.nanguoyu.us" password = "我是密码君" smtp_server = "smtpdm.aliyun.com" from_addr = "卡尺姑娘<kindle@mail.nanguoyu.us>" to_addr = "nanguoyu_alice@kindle.cn" a = "nanguoyu_alice@kindle.cn" filename = 'E:\\workplace\\tomato_kindle\\book\\论文写作国家标准.doc' book = '论文写作国家标准.doc' '''邮件正文''' msg = MIMEMultipart('mixed') msg['From'] = _format_addr(from_addr) msg['To'] = _format_addr(to_addr) msg['Subject'] = Header(book[:book.find('.')], 'utf-8').encode() msg['Date'] = utils.formatdate(localtime=1) msg.attach(MIMEText('我是正文君'.encode('utf-8'), _charset='utf-8')) # 添加附件就是加上一个MIMEBase,从本地读取一个图片: with open(filename, 'rb') as f: # 设置附件的MIME和文件名,这里是png类型: mime = MIMEBase('application', 'octet-stream', filename=book) # 加上必要的头信息: mime.add_header('Content-Disposition', 'attachment', filename=book) mime.add_header('Content-ID', '<0>') mime.add_header('X-Attachment-Id', '0') # 把附件的内容读进来: mime.set_payload(f.read()) # 用Base64编码: encoders.encode_base64(mime) # 添加到MIMEMultipart: msg.attach(mime) try: server = smtplib.SMTP(smtp_server, 25) server.set_debuglevel(1) server.login(stmp_user, password) server.sendmail(stmp_user, [to_addr], msg.as_string()) server.quit() except smtplib.SMTPException: print("Error: 无法发送邮件")
琢磨着一直这么着也不是办法,找出万年不用的126邮箱,我天竟然发过去了。
我已经不想在阿里云发工单了,看都不想看。
另,现在QQ邮箱已经屏蔽了我的邮件域名。23333333333333
文章评论