python发送邮件脚本


Posted in Python onMay 22, 2018

本文实例为大家分享了python发送邮件的具体代码,供大家参考,具体内容如下

#!/usr/bin/env python 
# -*- coding: utf-8 -*- 
import smtplib 
import sys 
from email.mime.text import MIMEText 
import linecache 
import email 
import os 
 
 
##################### 
# set email service host,user,pass word,postfix 
mail_host="smtp.exmail.qq.com" 
mail_user="username" 
mail_pass="password" 
mail_postfix="qq.com" 
###################### 
 
def transfer_utf8_to_gb2312(file_name): 
 f=open(file_name) 
 s=f.read() 
 f.close() 
 u=s.decode("utf-8") 
 s=u.encode("gb2312") 
 f=open(file_name,"w"); 
 f.write(s) 
 
 
def send_mail(to_list,sub,content_file_name): 
 me=mail_user+"<"+mail_user+"@"+mail_postfix+">" 
 msg = email.MIMEMultipart.MIMEMultipart() 
 content = open(content_file_name.encode("utf-8"), 'rb') 
 content_msg = MIMEText(content.read(),"plain","utf-8") 
 msg.attach(content_msg) 
 msg['Subject'] = sub 
 msg['From'] = me 
 msg['To'] = ";".join(to_list) 
 try: 
  s = smtplib.SMTP() 
  s.connect(mail_host) 
  s.login(mail_user+"@"+mail_postfix,mail_pass) 
  s.sendmail(me, to_list, msg.as_string()) 
  s.close() 
  return True 
 except Exception, e: 
  print "error:",str(e) 
  return False 
 
def send_mail_with_attachment(to_list,sub,content_file_name,attachment_file_name): 
 me=mail_user+"<"+mail_user+"@"+mail_postfix+">" 
 msg = email.MIMEMultipart.MIMEMultipart() 
 content = open(content_file_name.encode("utf-8"), 'rb') 
 content_msg = MIMEText(content.read(),"plain","utf-8") 
 msg.attach(content_msg) 
 for tmp_attachment_file_name in attachment_file_name.split(","): 
  contype = 'application/octet-stream' 
  maintype, subtype = contype.split('/', 1) 
  file_data = open(tmp_attachment_file_name.encode("utf-8"), 'rb') 
  file_msg = email.MIMEBase.MIMEBase(maintype, subtype) 
  file_msg.set_payload(file_data.read()) 
  file_data.close( ) 
  email.Encoders.encode_base64(file_msg) 
  basename = os.path.basename(tmp_attachment_file_name) 
  file_msg.add_header('Content-Disposition', 'attachment', filename = basename.encode("utf-8")) 
  msg.attach(file_msg) 
 msg['Subject'] = sub 
 msg['From'] = me 
 msg['To'] = ";".join(to_list) 
 try: 
  s = smtplib.SMTP() 
  s.connect(mail_host) 
  s.login(mail_user+"@"+mail_postfix,mail_pass) 
  s.sendmail(me, to_list, msg.as_string()) 
  s.close() 
  return True 
 except Exception, e: 
  print "error:",str(e) 
  return False 
 
def print_usage(): 
  print "Usage: " 
  print "  %s email_send_list(xxx@163.com,xxx@qq.com,...) subject content_file_name" % (sys.argv[0]) 
  print "  %s email_send_list(xxx@163.com,xxx@qq.com,...) subject content_file_name attachment_file_name(file_name1,file_name2,...) if_transform_attachment_to_gb2312(yes or not)" % (sys.argv[0]) 
 
######Start from here######### 
if __name__ == '__main__': 
 reload(sys) 
 sys.setdefaultencoding('utf8') 
 if len(sys.argv) == 6: 
  send_list = sys.argv[1].split(",") 
  subject = unicode(sys.argv[2],"utf-8") 
  content_file_name = unicode(sys.argv[3],"utf-8") 
  attachment_file_name = unicode(sys.argv[4],"utf-8") 
  if(sys.argv[5] == "yes"): 
   transfer_utf8_to_gb2312(attachment_file_name.decode("utf-8")) 
  elif(sys.argv[5] == "not"): 
   pass 
  else: 
   print_usage() 
 
  if send_mail_with_attachment(send_list,subject,content_file_name,attachment_file_name): 
   print "Send email success!" 
  else: 
   print "Send email fail!" 
   sys.exit(1) 
 elif len(sys.argv) == 4: 
  send_list = sys.argv[1].split(",") 
  subject = unicode(sys.argv[2],"utf-8") 
  content_file_name = unicode(sys.argv[3],"utf-8") 
 
  if send_mail(send_list,subject,content_file_name): 
   print "Send email success!" 
  else: 
   print "Send email fail!" 
   sys.exit(1) 
 else: 
  print_usage()

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

Python 相关文章推荐
python字符串排序方法
Aug 29 Python
python itchat实现微信自动回复的示例代码
Aug 14 Python
python3.5 tkinter实现页面跳转
Jan 30 Python
python生成n个元素的全组合方法
Nov 13 Python
pandas pivot_table() 按日期分多列数据的方法
Nov 16 Python
python退出命令是什么?详解python退出方法
Dec 10 Python
谈谈Python中的while循环语句
Mar 10 Python
pandas DataFrame创建方法的方式
Aug 02 Python
Python检查图片是否损坏及图片类型是否正确过程详解
Sep 30 Python
Python pyautogui模块实现鼠标键盘自动化方法详解
Feb 17 Python
Python Matplotlib绘制条形图的全过程
Oct 24 Python
Pandas数据结构之Series的使用
Mar 31 Python
python smtplib发送带附件邮件小程序
May 22 #Python
python SMTP实现发送带附件电子邮件
May 22 #Python
python 获取当天凌晨零点的时间戳方法
May 22 #Python
python 爬虫一键爬取 淘宝天猫宝贝页面主图颜色图和详情图的教程
May 22 #Python
python3.x实现发送邮件功能
May 22 #Python
python 爬虫 批量获取代理ip的实例代码
May 22 #Python
python 获取当天每个准点时间戳的实例
May 22 #Python
You might like
如何利用php array_multisort函数 对数据库结果进行复杂排序
2013/06/08 PHP
将word转化为swf 如同百度文库般阅读实现思路及代码
2013/08/09 PHP
PHP之密码加密的几种方式
2015/07/29 PHP
windows server 2008/2012安装php iis7 mysql环境搭建教程
2016/06/30 PHP
Yii框架参数化查询中IN查询只能查询一个的解决方法
2017/05/20 PHP
通过判断JavaScript的版本实现执行不同的代码
2010/05/11 Javascript
详解JavaScript中数组的相关知识
2015/07/29 Javascript
总结JavaScript设计模式编程中的享元模式使用
2016/05/21 Javascript
canvas实现图像布局填充功能
2017/02/06 Javascript
完美解决input[type=number]无法显示非数字字符的问题
2017/02/28 Javascript
利用JavaScript实现栈的数据结构示例代码
2017/08/02 Javascript
Angular使用 ng-img-max 调整浏览器中的图片的示例代码
2017/08/17 Javascript
js神秘的电报密码 哈弗曼编码实现
2019/09/10 Javascript
通过实例解析jQ Ajax操作相关原理
2020/09/23 Javascript
vue通过接口直接下载java生成好的Excel表格案例
2020/10/26 Javascript
[04:28]DOTA2亚洲邀请赛小组赛第五日 TOP10精彩集锦
2015/02/03 DOTA
Python操作Sql Server 2008数据库的方法详解
2018/05/17 Python
Python实现识别图片内容的方法分析
2018/07/11 Python
Django框架的中的setting.py文件说明详解
2018/10/15 Python
python遍历文件夹找出文件夹后缀为py的文件方法
2018/10/21 Python
python3中sorted函数里cmp参数改变详解
2020/03/12 Python
python使用openpyxl操作excel的方法步骤
2020/05/28 Python
Python读取图像并显示灰度图的实现
2020/12/01 Python
CSS教程:CSS3圆角属性
2009/04/02 HTML / CSS
迪卡侬印度官网:购买所有体育用品
2017/06/24 全球购物
十八届三中全会学习方案
2014/02/16 职场文书
优秀毕业生的求职信
2014/07/21 职场文书
小学领导班子对照材料
2014/08/23 职场文书
导航工程专业自荐信
2014/09/02 职场文书
售后客服个人自我评价
2014/09/14 职场文书
2015大学生党员自我评价范文
2015/03/03 职场文书
2015国庆节66周年演讲稿
2015/03/20 职场文书
导游词之广东佛山(南风古灶)
2019/09/24 职场文书
2019下半年英语教师的教学工作计划(3篇)
2019/09/25 职场文书
Elasticsearch 批量操作
2022/04/19 Python
Windows server 2016服务器基本设置
2022/08/14 Servers