Python发送带附件的邮件代码

#coding: utf-8
import smtplib
import sys
import datetime
from email.mime.text import MIMEText
from email.header import Header
from email.mime.multipart import MIMEMultipart def send_mail(subject,mail_content,*receiver_all,**file_all): #发送带附件的邮件
#发送者:
sender = '764309404@qq.com' #接收着:
#receiver =['764309404@qq.com','1920583440@qq.com']
receiver = []
for rec in receiver_all:
receiver += rec
#用户名:
username = '764309404@qq.com' #密码:
password = 'ztoghcgoxraqbece' #邮件类型
msg = MIMEMultipart('alternative') #邮件主题:
#subject='' #定义邮件文本内容 for i in file_all:
file = str(file_all[i])
print file
#构造附件
att1 = MIMEText(open(file, 'rb').read(), 'base64', 'GBK')
att1["Content-Type"] = 'application/octet-stream'
att1["Content-Disposition"] = 'attachment; filename='+file
msg.attach(att1) #获取当前时间
dt = datetime.datetime.now() print dt #邮件主题供选择
text_morning = " 美好的一天从此刻开始,上班请记得打卡哦!......"
text_evening = " 辛勤的劳动结束咯,童鞋们签退自嗨啦!........." if int(dt.strftime('%H')) < 12:
part1 = MIMEText(mail_content,'plain','utf-8')
#subject = text_morning
else:
part1 = MIMEText(mail_content,'plain','utf-8')
#subject = text_evening msg['Subject'] = Header(subject, 'utf-8') msg.attach(part1) try:
smtp = smtplib.SMTP_SSL("smtp.qq.com",465)
smtp.login(username, password)
smtp.sendmail(sender, receiver, msg.as_string())
smtp.quit()
print dt,'邮件发送成功'
except Exception,e:
print str(e)
print dt,'邮件发送发送失败' #send_mail('Hello','附件是今日爬取的天气和爬取日志',['764309404@qq.com','296738636@qq.com'],file1='/etl/etldata/script/ddl/mail/setup.py',file2='/etl/etldata/script/ddl/mail/mail.py')

python发送带网页和图片的代码

#coding: utf-8
import smtplib
import sys
import datetime
from email import encoders
from email.mime.text import MIMEText
from email.header import Header
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase #发送带附件的邮件
#sender = 'jiangjianming@hzyatop.com'
#sender = 'jim.jiang2016@outlook.com'
sender = '764309404@qq.com'
#receiver =['764309404@qq.com','1920583440@qq.com']
receiver =['764309404@qq.com','1920583440@qq.com','296738636@qq.com','328389557@qq.com','1507461103@qq.com','528857736@qq.com'] username = '764309404@qq.com'
password = 'ztoghcgoxraqbece'
msg = MIMEMultipart('alternative') subject='邮件主题' num = str(sys.argv[1]) with open('/etl/etldata/script/tmpdir/image/'+str(num)+'.jpg','rb') as f:
minme = MIMEBase('image','jpg',filename='1.jpg')
minme.add_header('Content-Disposition', 'attachment', filename=str(num)+'.png')
minme.add_header('Content-ID', '<0>')
minme.add_header('X-Attachment-Id', '')
minme.set_payload(f.read())
encoders.encode_base64(minme)
msg.attach(minme) dt = datetime.datetime.now() print dt def readcont(filepath):
f = open(filepath,'rb')
return f.read()
#return unicode(f.read(),'utf-8') #num=86128 subject = readcont('/etl/etldata/script/tmpdir/html/'+str(num)+'.title') note = readcont('/etl/etldata/script/tmpdir/html/'+str(num)+'.html') html_head = '<html></body><h1>' + subject + '</h1>'
html_end = '</body></html>'
html_pic = '<p><img src="cid:0"></p>'
html_note = '<p>' + note + '</p>'
html = html_head + html_pic + note + html_end msg.attach(MIMEText(html,'html','utf-8')) msg['Subject'] = Header(subject, 'utf-8')
#msg.attach(part1) try:
smtp = smtplib.SMTP_SSL("smtp.qq.com",465)
smtp.login(username, password)
smtp.sendmail(sender, receiver, msg.as_string())
smtp.quit()
print '发送成功'
except Exception,e:
print str(e)
print '发送失败'

 发送带附件的邮件:

#coding: utf-8
#发生带附件的邮件代码
import smtplib
import sys
import datetime
from email.mime.text import MIMEText
from email.header import Header
from email.mime.multipart import MIMEMultipart def send_mail(subject,mail_content,*receiver_all,**file_all): #发送带附件的邮件
#发送者:
sender = '764309404@qq.com' #接收着:
#receiver =['764309404@qq.com','1920583440@qq.com']
receiver = []
for rec in receiver_all:
receiver += rec
#用户名:
username = '764309404@qq.com' #密码:
password = 'ztoghcgoxraqbece' #邮件类型
msg = MIMEMultipart('alternative') #邮件主题:
#subject=''
msg["From"] = '外星人'
#定义邮件文本内容 for i in file_all:
file = str(file_all[i])
print file
#构造附件
att = MIMEText(open(file, 'rb').read(), 'base64', 'utf-8')
att["Content-Type"] = 'application/octet-stream'
att["Content-Disposition"] = 'attachment; filename='+file
msg.attach(att) #获取当前时间
dt = datetime.datetime.now() print dt #邮件主题供选择
text_morning = " 美好的一天从此刻开始,上班请记得打卡哦!......"
text_evening = " 辛勤的劳动结束咯,童鞋们签退自嗨啦!........." if int(dt.strftime('%H')) < 12:
part1 = MIMEText(mail_content,'plain','utf-8')
#subject = text_morning
else:
part1 = MIMEText(mail_content,'plain','utf-8')
#subject = text_evening msg['Subject'] = Header(subject, 'utf-8') msg.attach(part1) try:
smtp = smtplib.SMTP_SSL("smtp.qq.com",465)
smtp.login(username, password)
smtp.sendmail(sender, receiver, msg.as_string())
smtp.quit()
print dt,'邮件发送成功'
except Exception,e:
print str(e)
print dt,'邮件发送发送失败' #date_hour_id = sys.argv[1] #date_id = date_hour_id[:8] #send_mail('兄弟,对不住了....%s汽车数据' %(date_id),'兄弟,对不住了,拿你邮箱来试试,你猜也猜不到我是谁,如果猜的不错的话,邮件会每隔四小时发一次,如果觉得扰民,那就等我明天上班来处理吧...附件是自动化爬取汽车之家的汽车数据,请查收.....',['764309404@qq.com','2586826993@qq.com'],file1='/etl/etldata/script/python/mb_qczj/%s/car_%s.csv' %(date_id,date_hour_id)) file = sys.argv[1] send_mail('汽车销量数据','附件是自动化爬取汽车销量排行数据,请查收.....',['764309404@qq.com','1920583440@qq.com'],file1 = file )

Python发送邮件代码的更多相关文章

  1. 使用python发送邮件

    最近需要做一个功能,统计bug的数量,然后发邮件给指定人,所有就先要了解一下使用python发送邮件 代码如下: #coding: utf-8 import smtplib from email.MI ...

  2. python发送邮件及附件

    今天给大伙说说python发送邮件,官方的多余的话自己去百度好了,还有一大堆文档说实话不到万不得已的时候一般人都不会去看,回归主题: 本人是mac如果没有按照依赖模块的请按照下面的截图安装 导入模块如 ...

  3. 解读Python发送邮件

    解读Python发送邮件 Python发送邮件需要smtplib和email两个模块.也正是由于我们在实际工作中可以导入这些模块,才使得处理工作中的任务变得更加的简单.今天,就来好好学习一下使用Pyt ...

  4. 利用python发送邮件

    找了很多使用python发送邮件的文章, 发现写的并不是太全, 导致坑特别多, 刚把这个坑跨过去, 在此记录下来 本代码使用163作为发送客户端, 接收邮箱随意 首先登录163邮箱, 开启POP3/S ...

  5. ETL过程跑完后,使用python发送邮件

    目标库中,如果有行数为0的表,使用python发送邮件 # -*- coding:utf-8 -*- # Author: zjc # Description:send monitor info to ...

  6. 【转】【Python】Python发送邮件(常见四种邮件内容)

    在写脚本时,放到后台运行,想知道执行情况,会通过邮件.SMS(短信).飞信.微信等方式通知管理员,用的最多的是邮件.在linux下,Shell脚本发送邮件告警是件很简单的事,有现成的邮件服务软件或者调 ...

  7. Python发送邮件(最全)

    简单邮件传输协议(SMTP)是一种协议,用于在邮件服务器之间发送电子邮件和路由电子邮件. Python提供smtplib模块,该模块定义了一个SMTP客户端会话对象,可用于使用SMTP或ESMTP侦听 ...

  8. (原创)python发送邮件

    这段时间一直在学习flask框架,看到flask扩展中有一个mail插件,所以今天就给大家演示如果发邮件. 首先我注册了一个163邮箱,需要开启smtp功能,因为咱们python发送邮件经过的是smt ...

  9. python发送邮件(转)

    SMTP发送邮件 阅读: 90274 SMTP是发送邮件的协议,Python内置对SMTP的支持,可以发送纯文本邮件.HTML邮件以及带附件的邮件. Python对SMTP支持有smtplib和ema ...

随机推荐

  1. dijstra+输出路径总结

    #include<iostream> #include<math.h> #include<memory.h> using namespace std; #defin ...

  2. linux 学习2 常用命令

    1.显示日期的指令: date 2.   [Tab]按键---具有『命令补全』不『档案补齐』的功能 3:  su和 sudo  su用于用户之间的切换.  su在不加任何参数,默认为切换到root用户 ...

  3. Striker-一款功能较多的web渗透工具

    项目地址:https://github.com/UltimateHackers/Striker 首先下载项目,并打开 ┌─[root@sch01ar]─[/sch01ar] └──╼ #git clo ...

  4. jsonp实现跨域请求的本质demo[无法发送post请求]

    views.py def get_data(request): return HttpResponse("机密数据") urls.py urlpatterns = [ url(r' ...

  5. DAY9-python并发之多线程理论

    一 什么是线程 在传统操作系统中,每个进程有一个地址空间,而且默认就有一个控制线程 线程顾名思义,就是一条流水线工作的过程,一条流水线必须属于一个车间,一个车间的工作过程是一个进程 车间负责把资源整合 ...

  6. DAY9-python并发之多进程

    一 multiprocessing模块介绍 python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.cpu_count()查看),在python中大部分情况需要使用多进程.P ...

  7. 什么是Scatter/Gather?

    scatter/gather指的在多个缓冲区上实现一个简单的I/O操作,比如从通道中读取数据到多个缓冲区,或从多个缓冲区中写入数据到通道: scatter(分散):指的是从通道中读取数据分散到多个缓冲 ...

  8. sed对指定行添加或删除注释

      如下文本   zimu.txt aaaaa #bbbbbb cccccc dddddd 以下命令如果需要在文本中更改 需要加 -i 或者  -ri参数 用sed在aaa前加#注释 sed 's/^ ...

  9. Python之路:面向对象及相关

    其他相关 一.isinstance(obj, cls) 检查是否obj是否是类 cls 的对象 class Foo(object):     pass   obj = Foo()   isinstan ...

  10. Oracle pl/sql 基础入门语法

    PL/SQL是一种块结构的语言,这意味着PL/SQL程序被划分和编写代码的逻辑块.每块由三个子部分组成:1     声明 此部分开头使用关键字DECLARE.它是一个可选的部分,并限定在该程序中使用的 ...