发送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; 程序 ...
随机推荐
- 如何使用 Zend Expressive 建立 NASA 图片库?
在本文中,我们将借助 NASA 天文图库 API,使用 Zend Expressive 建立图片库.最后的结果将显示在 AstroSplash 网站,该网站是为了文本特意搭建的.本文系 OneAPM ...
- android 提示用户是否退出应用程序 提升用户体验
首先明确一点,用户的一直点击的返回键,之后就会退出到桌面.那么,如何提示呢?很简单,在用户一顿返回键回到程序入口处(即程序的第一个Activity)给用户一个提示,您再按可就退出程序啦?那么如何在程序 ...
- php 数组指针相关函数current(),next(),prev(),end()
mixed current(array target_array) current()函数返回位于target_array数组当前指针位置的数组值.与next().prev().和end()函数不同, ...
- char 和 varchar
固定长度或可变长度的字符数据类型. char [ ( n ) ] 固定长度,非 Unicode 字符数据,长度为 n 个字节.n 的取值范围为 1 至 8,000,存储大小是 n 个字节.char 的 ...
- background image position问题
在CSS中,背景图片的定位方法有3种: 1)关键字:background-position: top left; 2)像素:background-position: 0px 0px; 3)百分比:ba ...
- GC回收建议
1.最基本的建议就是尽早释放无用对象的引用.大多数程序员在使用临时变量的时候,都是让引用变量在退出活动域(scope)后,自动设置为 null.我们在使用这种方式时候,必须特别注意一些复杂的对象图,例 ...
- 【HDOJ】3509 Buge's Fibonacci Number Problem
快速矩阵幂,系数矩阵由多个二项分布组成.第1列是(0,(a+b)^k)第2列是(0,(a+b)^(k-1),0)第3列是(0,(a+b)^(k-2),0,0)以此类推. /* 3509 */ #inc ...
- VJP1071新年趣事之打牌(背包+输出路径)
简单的01背包 保存下方案总数 其实就是dp[v]值 输出路径dfs一下 #include <iostream> #include<cstdio> #include<cs ...
- nginx 安全漏洞 (CVE-2013-4547)
Nginx 的安全限制可能会被某些请求给忽略,(CVE-2013-4547). 当我们通过例如下列方式进行 URL 访问限制的时候,如果攻击者使用一些没经过转义的空格字符(无效的 HTTP 协议,但从 ...
- import project后,出现Unable to get system library for the project
import project 后,出现Unable to get system library for the project. 这是因为在import 一个项目的时候,没有指定android sdk ...