发送email给列表中的邮箱--python
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
from email.Header import Header
from email.MIMEText import MIMEText
from email.MIMEMultipart import MIMEMultipart
import smtplib, datetime
import os,sys
import datetime
import time email_code='utf-8'
email_header='本周周报'
server_port='25'
main_msg=''
list_file='send_list.dat' #当前日期
#print datetime.date.today() #求指定日期前的date
begin_date=datetime.date.today()-datetime.timedelta(days=7) #格式化日期
#print begin_date.strftime("%Y%m%d")
#print time.strftime("%Y%m%d",time.localtime()) file_path='/home/nantian/tmp/工作情况汇报_%s-%s.docx' %(begin_date.strftime("%Y%m%d"),\
time.strftime("%Y%m%d",time.localtime())) try:
send_addr=sys.argv[1]
send_passwd=sys.argv[2]
server_addr='smtp.%s' % send_addr.split('@')[1]
except IndexError,e:
print "Usage:%s address password!" % sys.argv[0]
quit() def send_email(rcv_text,rcv_addr,send_file): msg = MIMEMultipart() txt = MIMEText(rcv_text,'utf-8')
msg.attach(txt) try:
att = MIMEText(open(file_path, 'rb').read(), 'base64', email_code)
msg["Accept-Language"]="zh-CN"
msg["Accept-Charset"]='ISO-8859-1,"%s"' % email_code
att["Content-Type"] = 'application/octet-stream'
att["Content-Disposition"] = 'attachment;filename="%s"' % os.path.basename(file_path)
msg.attach(att)
except IOError,e:
pass msg['to'] = rcv_addr
msg['from'] = send_addr
msg['subject'] = Header(email_header,email_code)
server.sendmail(msg['from'], msg['to'],msg.as_string()) server = smtplib.SMTP()
server.connect(server_addr,server_port) try:
server.login(send_addr, send_passwd)
list_line=open(list_file,'rb')
except smtplib.SMTPAuthenticationError,e:
print "Error:Username or password error!"
quit()
except IOError:
print "Eorro:Open file [%s] error!" % list_file
quit() if not os.path.exists(file_path) :
email_header='本周周报没有写!,或者文档名称不正确!'
send_email("本周周报没写!","admin@qq.com","")
quit() for eachline in list_line:
addr=eachline.split("|")[0]
main_msg=eachline.split("|")[1]
if addr[0] == '#':
continue
send_email(main_msg,addr,file_path) server.close
因为工作中需要发送工作报告给领导,说不定那天玩游戏就忘记了。这样写一个工具加到crontab中,提醒自己。
之需要将文档放在指定目录下,脚本就会email。
ps:需要维护一个邮件列表。可以适当修改,将自己的用户密码加密保存。
发送email给列表中的邮箱--python的更多相关文章
- c# 发送Email的2中方式
先来第一种 // 版权所有 ZhuoYue Co.,Ltd 卓越一通秘密信息 // 文件名称:MyEmailByCDO.cs // 作 者:huangzh // 创建日期:2015-08-20 16: ...
- python 发送email
pyton smtplib发送邮件 在邮件中设置并获取到 smtp域名 在脚本中执行命名,收件人可以是 多个,在列表中 import smtplib from email.mime.text impo ...
- [Python] 发送email的几种方式
python发送email还是比較简单的,能够通过登录邮件服务来发送,linux下也能够使用调用sendmail命令来发送,还能够使用本地或者是远程的smtp服务来发送邮件,无论是单个,群发,还是抄送 ...
- Python Django中QQ邮箱授权码问题
Python Django中QQ邮箱授权码问题 系统及软件版本如下: Ubuntu Kylin 16.04 Python 3.5.1 Django 1.9.7 PyCharm Community Ed ...
- Python 发送 email 的两种方式
Python发送email的两种方式,分别为使用登录邮件服务器.调用sendmail命令来发送三种方法 Python发送email比较简单,可以通过登录邮件服务来发送,linux下也可以使用调用sen ...
- 使用python原生的方法实现发送email
使用python原生的方法实现发送email import smtplib from email.mime.text import MIMEText from email.mime.multipart ...
- python之BIF函数在列表中的应用
1 Python 3.3.4 (v3.3.4:7ff62415e426, Feb 10 2014, 18:13:51) [MSC v.1600 64 bit (AMD64)] on win32 2 T ...
- C#发送Email邮件(实例:QQ邮箱和Gmail邮箱)
下面用到的邮件账号和密码都不是真实的,需要测试就换成自己的邮件账号. 需要引用: using System.Net.Mail; using System.Text; using System.Net; ...
- [转]C#发送Email邮件 (实例:QQ邮箱和Gmail邮箱)
下面用到的邮件账号和密码都不是真实的,需要测试就换成自己的邮件账号. 需要引用:using System.Net.Mail;using System.Text;using System.Net; 程序 ...
随机推荐
- HTML5文件拖拽
HTML5新增的File API, 可以获取名称.文件大小.类型等信息,需先对DOM中的Element进行拖拽事件绑定 相关API 首先获取节点,绑定拖动到该节点的事件,可以改变鼠标形状 var dr ...
- Form – 保存自動關閉當前窗口
FAQ: 在BUTTON的触发器中,写如下代码, commit_form; go_bloack('你想显示的那个window的block'); --或者写 show_view('你要显示的canvas ...
- SpeeDO —— 并行深度学习系统
SpeeDO —— 并行深度学习系统 摘要: 最近,AlphaGo又带起了一波深度学习的热潮.深度学习在很多领域都大幅提高了模型的精度,使得很多以前在实验室中的技术得以运用到日常的生活之中.然而, ...
- URAL1009
链接 第一道URAL题 简单递推 #include <iostream> #include<cstdio> #include<cstring> #include&l ...
- C# volatile与lock
一.C#中volatile volatile是C#中用于控制同步的关键字,其意义是针对程序中一些敏感数据,不允许多线程同时访问,保证数据在任何访问时刻,最多有一个线程访问,以保证数据的完整性,vola ...
- 【 D3.js 选择集与数据详解 — 3 】 绑定数据的顺序
data() 函数有两个参数,第一个是被绑定数据,第二个参数用于指定绑定的顺序.在数据需要更新的时候常常会用到. 默认的情况下,data()函数是按照索引号依次绑定数组各项的.第0个元素绑定数组的第0 ...
- c语言_文件操作_FILE结构体解释_涉及对操作系统文件FCB操作的解释_
1. 文件和流的关系 C将每个文件简单地作为顺序字节流(如下图).每个文件用文件结束符结束,或者在特定字节数的地方结束,这个特定的字节数可以存储在系统维护的管理数据结构中.当打开文件时,就建立了和文件 ...
- Google Chrome中的高性能网络 (三)
使用预连接优化了TCP连接管理 已经预解析到了主机名,也有了由OmniBox和Chrome Predictor提供信号,预示着用户未来的操作.为什么再进一步连接到目标主机,在用户真正发起请求前完成TC ...
- BrnShop开源网上商城第四讲:自定义插件
重要通知:BrnShop企业版NOSQL设计(基于Redis)已经开源!源码内置于最新版的BrnShop中,感兴趣的园友可以去下载来看看.官网地址:www.brnshop.com. 好了现在进入今天的 ...
- FZU2234 牧场物语 DP
题意:先去再回,不能吃重复的,获取最大值 分析:等价于两个人同时去,不能吃重复的 定义dp[i][j][k]表示从起点走k步,第一个人的横坐标是i,第二个人的横坐标是j的最最大值 这个题和bc上一个回 ...