我建议使用

MIMEApplication代替附件.您也不需要手动执行所有有效负载编码,因为这已经自动完成.这个例子对我有用:

from email.mime.text import MIMEText

from email.mime.application import MIMEApplication

from email.utils import formataddr

from email.utils import make_msgid

from email.utils import formatdate

email = MIMEMultipart()

email['From'] = formataddr(('Jane Doe', 'jane@example.com'))

email['Subject'] = u'Test email'

email['Message-Id'] = make_msgid()

email['Date'] = formatdate(localtime=True)

email.attach(MIMEText(u'This is your email contents.'))

email.attach(MIMEApplication('your binary data'))

print email.as_string()

请注意,我还要注意在此处设置正确的Date和Message-Id标头.

将其应用于您的代码(并进行一些小的清理),我得到以下工作代码:

import smtplib

import os

from email.mime.multipart import MIMEMultipart

from email.mime.application import MIMEApplication

from email.mime.text import MIMEText

from email.utils import make_msgid

from email.utils import formatdate

def make_mail(address,body,format,mylist=[]):

msg = MIMEMultipart()

msg['To'] = address

msg['From'] = 'ggous1@gmail.com'

msg['Message-Id'] = make_msgid()

msg['Date'] = formatdate(localtime=True)

msg.attach(MIMEText(body, 'plain' if format == 'txt' else 'html'))

for filename in mylist:

part = MIMEApplication(open(filename).read())

part.add_header('Content-Disposition',

'attachment; filename="%s"' % os.path.basename(filename))

msg.attach(part)

return msg

def send_mail(msg):

srv = smtplib.SMTP('smtp.gmail.com')

srv.set_debuglevel(1)

srv.ehlo()

srv.starttls()

srv.ehlo()

srv.login('username','pass')

srv.sendmail(msg['From'], msg['To'], msg.as_string())

srv.quit()

if __name__=="__main__":

address=raw_input('Enter an address to send email in the form "name@host.com" ')

body=raw_input('Enter the contents of the email')

format=raw_input('The format is txt or html?')

question=raw_input('Do you have any files to attach?Yes or No?')

mylist=[]

if question=='Yes' or question=='yes':

fn=raw_input('Enter filename')

mylist.append(fn)

msg = make_mail(address,body,format,mylist)

send_mail(msg)

python 发送邮件不显示附件_python无法通过电子邮件发送附件文件相关推荐

  1. html发照片的文本实例,python发送邮件的实例代码(支持html、图片、附件) -电脑资料...

    第一段代码: 复制代码代码如下: #!/usr/bin/python # -*- coding: utf-8 -*- import email import mimetypes from email. ...

  2. python自动下载邮件附件_Python批量下载电子邮件附件并汇总合并Excel文件

    原标题:Python批量下载电子邮件附件并汇总合并Excel文件 前几天在公众号搞了一波送书活动,详见福利:免费赠送240本Python教材,该文推送之后,立刻收到了大量的样书申请表,那么接下来的工作 ...

  3. phpmailer 私密抄送_使用 phpmailer 发送邮件,支持抄送、密送和发送附件

    1.使用 composer 下载 phpmailercomposer require phpmailer/phpmailer 2.自定义 Mailer.php 文件,我使用的是TP5.1的框架测试,可 ...

  4. python程序多次运行_Python内怎么使同一个.py文件多次运行?

    原博文 2020-08-03 15:57 − 当在多个客户端同时连接一个服务端时需要同时运行多个客户端所在的.py文件,但默认上我们运行了一次后如果再想运行这个.py文件,则被要求停下当前运行的.py ...

  5. python 发送邮件正文字体设置_smtplib文字邮件的发送

    今天跟大家讲解一下接口测试框架的知识准备阶段,首先是发送纯文字的电子邮件,会的同学可以忽略,不会的就多敲几遍,直到自己能敲出来为止~~ # coding: utf-8import smtplibfro ...

  6. python中bttext什么意思_Python实现解析Bit Torrent种子文件内容的方法

    有人会 python语言 对BT种子解析 吗bt的客户端,本来就有纯python编写的. 你找一个下载就可以了. 我印象中bittorrent就是python编写的. python开发很方便,也很快. ...

  7. python 发送邮件不显示附件_python3发送邮件(无附件)

    python3发送邮件代码: import smtplib from email.mime.text import MIMEText from email.utils import formatdat ...

  8. python 发送邮件不显示附件_求助:写python脚本发 带有附件的邮件, 收到邮件后,发现附件直接显示在屏幕上了,而不是以附件形式...

    不知道为什么会这样,以下是我从网上参考的pythoncode:fromAdd='odps.testmail@alibaba-inc.com'title='RepPrjStat'ccList=''toL ...

  9. python绘制直方图显示数字_Python实现绘制双柱状图并显示数值功能示例

    本文实例讲述了Python实现绘制双柱状图并显示数值功能.分享给大家供大家参考,具体如下: # -*- coding:utf-8 -*- #! python3 import matplotlib.py ...

最新文章

  1. 增长率高达40%!物联网平台如何拉动产业马车飞速狂奔
  2. Cocos2d-x3.0 不规则Button
  3. SAP Marketing和SAP Marketing Cloud的区别
  4. C++ 读取结束的判断
  5. TypeScript入坑
  6. Element UI的表格table列的宽度自适应设置
  7. linux 下rpm软件的安装和卸载
  8. unity 竖屏不能全屏显示
  9. python 点云配准_点云的全局配准
  10. PowerShell中实现一个最基本的日志器logger
  11. python语言数字类型字节_Python中 各种数字类型的判别(numerica, digital, decimal)
  12. 使用Eclipse开发Java EE应用
  13. Fusion 360软件安装
  14. ppt助手网络服务器如何设置在哪里,网络服务器配置与管理ppt课件.ppt
  15. 遇到问题---eclipse--java--tomcat运行web项目报错Licensed to the Apache Software Foundation (ASF) under one or m
  16. OpenGL学习笔记——坐标转换
  17. 计算机考研300分什么水平,工科考研300分什么概念
  18. 低成本2.4G SOC(NYA054E)灯控遥控芯片方案-CI2454/CI2451
  19. nodejs egg 获取用户的登录ip位置,ua
  20. 威纶通屏幕(HMI)开发进阶教程四:通过PLC控制,使宏指令跳转到不同的窗口

热门文章

  1. 寒假每日一题(入门组)【week1 完结】
  2. Spring boot配置Dubbo三种方式
  3. 线程通信wait与notify
  4. hive hql文档_30分钟入门 Hive SQL(HQL 入门篇)
  5. 找工作java还是python有用_你觉得学 Python 还是 Java 更好找工作?
  6. 防屏蔽浏览器_彻底解决安卓手机通知管理难题,顺便还实现了聊天消息防撤回!...
  7. 回馈粉丝,送30本技术书。
  8. JUC 中的多线程协作工具类:CountDownLatch 和 CyclicBarrier
  9. try catch 有多烦人,我就有多暴躁!一次搞定 Exception ^ ^
  10. 深入理解Java虚拟机-如何利用VisualVM对高并发项目进行性能分析