python smtplib发送带附件邮件小程序

最近经常需要出一些临时性的报表,于是就用python 的smtplib 和email 两模块写了个小程序,当数据处理完后通过邮箱把报表文件从服务器上发送出来!

程序名称:sendMail_func.py

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import os
import sys
import time
import smtplib
from email import encoders
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email.mime.multipart import MIMEMultipart 

def send_mail(sub,content,mail_to,fileList):
  mail_host='smtp.163.com'
  mail_user='****@163.com'
  mail_pass='******'
  mail_to_list=mail_to.split(',') 

  msg = MIMEMultipart()
  #msg=MIMEText(content,_charset='utf-8')
  msg['Subject']=sub
  msg['From']=mail_user
  msg['To']=";".join(mail_to_list)
  msg.attach(MIMEText(content,_charset='utf-8')) 

  files=fileList.split(',')
  for f in files:
    part = MIMEBase('application', 'octet-stream') #'octet-stream': binary data
    part.set_payload(open(f, 'rb').read())
    encoders.encode_base64(part)
    part.add_header('Content-Disposition', 'attachment; filename="%s"' % os.path.basename(f).encode('utf-8'))
    msg.attach(part) 

  try:
    s=smtplib.SMTP()
    s.connect(mail_host)
    s.login(mail_user,mail_pass)
    s.sendmail(mail_user,mail_to_list,msg.as_string())
    s.close()
    return True
  except Exception, e:
    print str(e)
    return False 

if __name__=="__main__":
  if len(sys.argv) == 5:
    send_mail(sys.argv[1],sys.argv[2],sys.argv[3],sys.argv[4])
  else:
    print ''
    print '*************************************************'
    print ' Error: 请传入四个参数值:邮件主题 邮件内容 收件人 附件路径'
    print '  如: python sendMail_func.py 邮件测试 邮件内容 abc@126.com,def@163.com,123456789@qq.com 1.xlsx,2.xlsx'
    print '*************************************************'
    print ''
    exit 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • python3使用SMTP发送HTML格式邮件

    一.设置开启SMTP服务并获取授权码 可以参考第一篇文章,这里不再赘述:[一]Python3使用SMTP发送简单文本邮件 二.使用Python3 发送HTML格式的邮件 0.使用的环境为: Python 3.6.3 (64bit) PyCharm 2017.3 (64bit) 1.实现代码: import smtplib from email.header import Header from email.mime.text import MIMEText # 发件人和收件人 sender =

  • Python SMTP发送邮件遇到的一些问题及解决办法

    Python练习内容: SMTP是发送邮件的协议,Python内置对SMTP的支持,可以发送纯文本邮件.HTML邮件以及带附件的邮件. Python对SMTP支持有smtplib和email两个模块,email负责构造邮件,smtplib负责发送邮件. 首先,我们来构造一个最简单的纯文本邮件: from email.mime.text import MIMEText msg = MIMEText('hello, send by Python...', 'plain', 'utf-8') 注意到构

  • python邮件发送smtplib使用详解

    本文实例为大家分享了python邮件发送smtplib使用具体代码,供大家参考,具体内容如下 文件形式的邮件 #!/usr/bin/env python3 #coding: utf-8 import smtplib from email.mime.text import MIMEText from email.header import Header sender = '***' receiver = '***' subject = 'python email test' smtpserver

  • python3实现SMTP发送邮件详细教程

    简介   Python发送邮件的教程本人在网站搜索的时候搜索出来了一大堆,但是都是说了一大堆原理然后就推出了实现代码,我测试用给出的代码进行发送邮件时都不成功,后面找了很久才找到原因,这都是没有一个详细的环境调试导致,所以今天特出一个详细的教程,一步一步从环境调试到代码实现整一个教程,希望对还在苦苦寻找解决方法却迟迟不能得到有效解决的朋友们一点帮助. SMTP协议   首先了解SMTP(简单邮件传输协议),邮件传送代理程序使用SMTP协议来发送电邮到接收者的邮件服务器.SMTP协议只能用来发送邮

  • Python基于SMTP协议实现发送邮件功能详解

    本文实例讲述了Python基于SMTP协议实现发送邮件功能.分享给大家供大家参考,具体如下: SMTP(Simple Mail Transfer Protocol),即简单邮件传输协议,它是一组由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式.Python内置对SMTP的支持,可以发送纯文本邮件.HTML邮件以及带附件的邮件. Python对SMTP支持有smtplib和email两个模块,email负责构造邮件,smtplib负责发送邮件. Python创建SMTP语法如下: imp

  • Python3使用SMTP发送带附件邮件

    一.设置开启SMTP服务并获取授权码 可以参考第一篇文章,这里不再赘述:[一]https://www.jb51.net/article/142220.htm 二.使用Python3 发送带附件的邮件 0.使用的环境为: Python 3.6.3 (64bit) PyCharm 2017.3 (64bit) 1.注意事项: 在调用smtplib,发送简单邮件的时候使用smtplib.SMTP()方法使没有问题的. 但是如果是邮件存在附件的情况下,还使用smtplib.SMTP()方法,就可能会发送

  • python smtplib模块自动收发邮件功能(二)

    接上篇python smtplib模块自动收发邮件功能(一) ,用python smtplib模块实现了发送邮件程序了,那么接下来我们需要现在要解决的问题如何在 test_report\目录下找到最新生成的报告,只有找到了才能把发邮件功能,然后将其集成到我们的自动化测试应用中. 一.获取最新的test_report #coding=utf-8 import smtplib from email.mime.text import MIMEText from email.header import

  • python3实现163邮箱SMTP发送邮件

    SMTP协议 首先了解SMTP(简单邮件传输协议),邮件传送代理程序使用SMTP协议来发送电邮到接收者的邮件服务器.SMTP协议只能用来发送邮件,不能用来接收邮件,而大多数的邮件发送服务器都是使用SMTP协议.SMTP协议的默认TCP端口号是25. 发送邮件之前的配置: 上面说了是使用SMTP协议发送的邮件,所以需要先查看你的发件人邮箱是否有开启SMTP协议,如没有,则需要开启,我测试使用的是163.com的邮箱作为发信人邮箱,在设置中开启SMTP协议如下图所示.   测试的前提是你需要开通客户

  • python利用smtplib实现QQ邮箱发送邮件

    python的smtplib提供了一种很方便的途径发送电子邮件.它对smtp协议进行了简单的封装. 下面是一个利用smtplib,实现QQ邮箱发送邮件的例子. 首先必须要打开QQ邮箱的smtp服务,在QQ邮箱个人主页的  设置-账户 中开启.如图: 成功开启后点击生成授权码 ,得到的密码为smtp发送邮件时的登录密码. 一个发送邮件的简单实例: from smtplib import SMTP_SSL from email.mime.text import MIMEText from email

  • python smtplib模块自动收发邮件功能(一)

    自动化测试的脚本运行完成之后,可以生成test report,如果能将result自动的发到邮箱就不用每次打开阅读,而且随着脚本的不段运行,生成的报告会越来越多,找到最近的报告也是一个比较麻烦的事件:如果能自 动的将结果发到项目相关人员的邮箱,这也是个不错的选择. python 的 smtplib 模块提供了一种很方便的途径发送电子邮件. 关于Python smtplib的介绍,可以从python应用程序的帮助文档,可以查看到smtp协议的各个封装. 分几部分介绍. 一.文件形式的邮件 直接上脚

  • python3使用smtplib实现发送邮件功能

    在之前的工作中,业务方做了一些调整,提出了对一部分核心指标做更细致的拆分并定期产出的需求.出于某些原因,这部分数据不太方便在报表上呈现,因此就考虑通过邮件的方式定期给业务方发送数据. 当时本来使用的是linux自带的mail命令来实现,然而某一天开始,突然发现服务器上的邮件服务不可用了,于是就将脚本迁移到本地,并准备使用Python3中的smtplib搭配crontab来实现. 首先,我们需要导入Python3标准库中的smtplib包和email包来实现邮件的构造和发送. import smt

  • python smtplib模块实现发送邮件带附件sendmail

    本文实例为大家分享了python smtplib实现发送邮件的具体代码,供大家参考,具体内容如下 #!/usr/bin/env python # -*- coding: UTF-8 -*- from email.mime.multipart import MIMEMultipart from email.mime.base import MIMEBase from email.mime.text import MIMEText from email.utils import COMMASPACE

随机推荐