我需要发送一封带有Excel附件的电子邮件

我的代码如下,可以发送电子邮件

但是当我收到邮件时,附件文件不是Excel文件~~

看来我附加的格式不对~~~

我添加了不同的电子邮件地址来接收此电子邮件

但他们都收到了未知格式的文件#!/usr/bin/python

# -*- coding: UTF-8 -*-

import os

import datetime

import sys

import smtplib

from email.mime.multipart import MIMEMultipart

from email.mime.text import MIMEText

from email.header import Header

from email.mime.base import MIMEBase

from email import encoders

mail_host = "mysever" # 设置服务器

mail_user = "me" # 用户名

mail_pass = "me123" # 口令

EMAILHOME = u'F:\Workfiles\weekreport\\forupdate'

sender = 'me@gmail.com'

receivers = ['aaaaaa@qq.com'] # 接收邮件,可设置为你的QQ邮箱或者其他邮箱

def getReceiverlist(filename):

lif = open(filename)

li = lif.readlines()

lif.close()

for x in range(len(li)):

li[x] = li[x].strip(os.linesep)

while '' in li:

li.remove('')

return li

def aisendmail():

ret = True

try:

message = MIMEMultipart()

message['From'] = Header("myname", 'utf-8')

message['To'] = Header("youname", 'utf-8')

message.attach(MIMEText('weekreport', 'plain', 'utf-8')) # 三个参数:第一个为文本内容,第二个 plain 设置文本格式,第三个 utf-8 设置编码

subject = 'myname-weekreport'

message['Subject'] = Header(subject, 'utf-8')

att1 = MIMEBase('application', "octet-stream")

att1.set_payload(open(u"F:\Workfiles\weekreport\\forupdate\myname_weekreport_20170821.xlsx",'rb').read())

encoders.encode_base64(att1)

att1.add_header('Content-Disposition', 'attachment; filename="myname-weekreport"')

message.attach(att1)

if os.path.exists(EMAILHOME + r'\receivers.txt'):

receiverslist = getReceiverlist(EMAILHOME + r'\receivers.txt')

print("receicerlist include:", receiverslist)

if len(receiverslist) == 0:

print"no receiver!!!"

receiverslist = receivers

else:

receiverslist = receivers

server = smtplib.SMTP()

server.connect(mail_host, 25) # 发件人邮箱中的SMTP服务器,端口是25

server.login(mail_user, mail_pass) # 括号中对应的是发件人邮箱账号、邮箱密码

server.sendmail(sender, receiverslist, message.as_string()) # 括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件

server.quit() # 关闭连接

except smtplib.SMTPException: # 如果 try 中的语句没有执行,则会执行下面的 ret=False

ret = False

return ret

result = aisendmail()

if result:

print "邮件发送成功"

else:

print "Error: 无法发送邮件"

我按照以下不同的方式添加excel附件:但都失败了(这意味着它无法接收excel格式的文件)

方法1:

^{pr2}$

结果:

收到未知格式文件

方法2:with open(u"F:\Workfiles\周报\\forupdate\xxx_周报_20170821.xlsx", "rb") as fil:

part = MIMEApplication(

fil.read(),

Name=basename(u"F:\Workfiles\周报\\forupdate\xxx_周报_20170821.xlsx")

)

part['Content-Disposition'] = 'attachment; filename="%s"' % basename(u"F:\Workfiles\周报\\forupdate\xxx_周报_20170821.xlsx")

message.attach(part)

结果:

收到一个bin格式的文件

方法三:att1 = MIMEApplication(open('foo.xlsx','rb').read())

att1.add_header('Content-Disposition', 'attachment', filename="foo.xlsx")

msg.attach(att1)

结果:

接收未知格式文件

python发送excel文件_如何在Python中使用Excel文件(xlsx)附件发送电子邮件相关推荐

  1. matlab分析xml文件_如何在Java中读取XML文件(DOM分析器)

    matlab分析xml文件 Today we will learn how to read the XML file in Java. We will also learn how to parse ...

  2. macos 虚拟镜像文件_如何在macOS中使用虚拟文件测试网络或硬盘速度

    macos 虚拟镜像文件 File transfer speeds can vary greatly from device to device. The same holds true for ne ...

  3. chrome查看网页文件_如何在Chrome中直接将文件和网页下载到Google云端硬盘

    chrome查看网页文件 We've all downloaded files from the web to our computer. However, if you'd rather downl ...

  4. git 还原文件到其他版本_如何在Git中还原旧文件版本

    git 还原文件到其他版本 读: 第1部分:什么是Git? 第2部分:Git入门 第3部分:创建第一个Git存储库 第4部分:如何在Git中还原旧文件版本 第5部分:3个用于Git的图形工具 第6部分 ...

  5. python如何读取uni文件_如何在Python中通过HTTP与UniProt交谈?

    我试图从UniProt获得一些结果,这是一个蛋白质数据库(细节并不重要).我正在尝试使用一种从一种ID转换为另一种ID的脚本.我能够在浏览器上手动执行此操作,但无法在 Python中执行此操作. 在h ...

  6. python队列怎么用_如何在Python中使用多处理队列? - python

    我很难理解多处理队列如何在python上工作以及如何实现它.假设我有两个python模块,它们从共享文件中访问数据,我们将这两个模块称为writer和Reader.我的计划是让读取器和写入器都将请求放 ...

  7. python静态变量计数器_如何在Python中使用静态变量在计数

    今天,在用Python写一个统计一个文件下有多少文件的小标本时,遇到了一个很棘手的问题.如何在Python中使用静态变量来计数.然后,就在网上一通查找,找的方法都是利用类的方法来实现静态变量.说实话没 ...

  8. python列表元素求和_如何在python语言使用不同方法实现列表元素求和

    在使用python语言列表时,如果列表中的元素都是数值类型,可以对元素进行求和.下面利用不同的方法实现列表元素求和: 工具/原料 python pycharm 截图工具 方法/步骤 1 第一步,在已创 ...

  9. python右对齐 数字_如何在Python中右对齐数值数据?

    我有一些数据,我显示在3列格式,形式"键:值键:键:值键:值".这里有一个例子: p: 1 sl: 10 afy: 4 q: 12 lg: 10 kla: 3 r: 0 kl: 1 ...

最新文章

  1. 第1关:8位可控加减法电路设计
  2. CSS:响应式下的折叠菜单(条纹式)
  3. spring+struts+hibernate分页 完整版,项目使用中
  4. nagios和cacti的整合
  5. Eclipse-Java代码规范和质量检查插件-FindBugs
  6. 基于ARM+DSP进行应用开发-经验共享
  7. 黑客SQL服务器入侵实战演习
  8. 海龟绘图两小时上手C语言 - 3 正方形螺旋线
  9. nod找不到服务器,Nodejs服务器:无法加载资源:服务器响应状态为404(未找到)...
  10. 评分卡模型开发(二)--用户数据异常值处理
  11. python selenium click 动态加载_python selenium:不要等到click()命令之后加载页面
  12. Contest 7.21(贪心专练)
  13. Java一个月学到springboot_从零开始学SpringBoot如何开始使用图文详解
  14. java date 没有毫秒,java – SimpleDateFormat没有正确解析毫秒
  15. 各种常见3D建模软件比较
  16. 谷歌内核浏览器无法下载文件的解决方法
  17. 取消桌面上计算机控制板网络三个系统图标,大神处置win10系统桌面图标“计算机 控制面板 网络”怎么不见了的解决方的步骤...
  18. 【opencv-c++】cv::ximgproc::thinning图像细化算法
  19. web漏洞-SQL注入漏洞、目录遍历漏洞、文件下载漏洞
  20. GPS时钟系统(GPS时钟同步系统-GPS时间同步系统)

热门文章

  1. 爬虫利器 xpath 实践案例
  2. linux下和嵌入式linux下通过udp接收来自vlc播放器的视频并转发播放
  3. 独家 | 离开百度后,王劲创办的景驰将于2020年6月量产自动驾驶汽车
  4. 与HTML的第一次亲密接触
  5. 解决JSON中文乱码以及JSON处理Date格式
  6. java spark 朴素贝叶斯算法(naive-bayes)
  7. 【大学物理·静止电荷的电场】有电介质时的高斯定理和环路定理 电位移
  8. sublime text 3安装-add to explorer context menu意思
  9. iOS 7 最佳实践;一个天气应用: Part 1/2
  10. SkeyeVSS综合安防监控Onvif、RTSP、GB28181视频云无插件直播点播解决方案之系统参数配置日志管理