#!/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的更多相关文章

  1. c# 发送Email的2中方式

    先来第一种 // 版权所有 ZhuoYue Co.,Ltd 卓越一通秘密信息 // 文件名称:MyEmailByCDO.cs // 作 者:huangzh // 创建日期:2015-08-20 16: ...

  2. python 发送email

    pyton smtplib发送邮件 在邮件中设置并获取到 smtp域名 在脚本中执行命名,收件人可以是 多个,在列表中 import smtplib from email.mime.text impo ...

  3. [Python] 发送email的几种方式

    python发送email还是比較简单的,能够通过登录邮件服务来发送,linux下也能够使用调用sendmail命令来发送,还能够使用本地或者是远程的smtp服务来发送邮件,无论是单个,群发,还是抄送 ...

  4. Python Django中QQ邮箱授权码问题

    Python Django中QQ邮箱授权码问题 系统及软件版本如下: Ubuntu Kylin 16.04 Python 3.5.1 Django 1.9.7 PyCharm Community Ed ...

  5. Python 发送 email 的两种方式

    Python发送email的两种方式,分别为使用登录邮件服务器.调用sendmail命令来发送三种方法 Python发送email比较简单,可以通过登录邮件服务来发送,linux下也可以使用调用sen ...

  6. 使用python原生的方法实现发送email

    使用python原生的方法实现发送email import smtplib from email.mime.text import MIMEText from email.mime.multipart ...

  7. 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 ...

  8. C#发送Email邮件(实例:QQ邮箱和Gmail邮箱)

    下面用到的邮件账号和密码都不是真实的,需要测试就换成自己的邮件账号. 需要引用: using System.Net.Mail; using System.Text; using System.Net; ...

  9. [转]C#发送Email邮件 (实例:QQ邮箱和Gmail邮箱)

    下面用到的邮件账号和密码都不是真实的,需要测试就换成自己的邮件账号. 需要引用:using System.Net.Mail;using System.Text;using System.Net; 程序 ...

随机推荐

  1. php 获取图片、swf的尺寸大小

    PHP获取图片大小函数.  getimagesize() 能够得到图片及flash(swf)的大小. 语法 1 list($width, $height, $type, $attr) = getima ...

  2. [状压dp]HDOJ3182 Hamburger Magi

    题意 大致是: 有n个汉堡 m块钱  (n<=15) 然后分别给n个汉堡的能量 再分别给n个汉堡所需的花费 然后下面n行 第i行有x个汉堡要在i汉堡之前吃 然后给出这x个汉堡的编号 输出 能获得 ...

  3. MSSQL版本

    (1)661是sql2008 R2的版本号     Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (Intel X86)   Apr  2 201 ...

  4. SQL Server系统表和常用函数(转)

    sysaltfiles 主数据库 保存数据库的文件 syscharsets 主数据库 字符集与排序顺序sysconfigures 主数据库 配置选项syscurconfigs 主数据库 当前配置选项s ...

  5. JAVA抽象类与接口

    在Java语言中, abstract class 和interface 是支持抽象类定 义的两种机制.正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力.abstract class和in ...

  6. 【HDOJ】2065 "红色病毒"问题

    刚开始看这道题目的时候,完全没看出来是递推.看了网上大牛的分析.立刻就明白了.其实无论字符串长度为多少,都可以将该长度下的组合分成四种情况S1(A偶数C偶数).S2(A偶数C奇数).S3(A奇数C偶数 ...

  7. 【HDOJ】2045 不容易系列之(3)—— LELE的RPG难题

    着色问题,递推,当超过3个块时,规律明显,此时可以是n-2的头尾重复+与头尾不同颜色,也可以是n-1+与头尾均不相同眼色情况.经典递推.注意long long. #include <stdio. ...

  8. java文件IO操作

    package com.io; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream ...

  9. [转] 网络流算法--Ford-Fulkerson方法及其多种实现

    网络流 转载自:http://www.cnblogs.com/luweiseu/archive/2012/07/14/2591573.html 在上一章中我们讨论的主题是图中顶点之间的最短路径,例如公 ...

  10. meta你到底了解多少

    最近看meta在移动端的使用,发现好多东西有必要整理一下. meta是神马?有神马作用? meta是用来在HTML文档中模拟HTTP协议的响应头报文.meta 标签用于网页的<head>与 ...