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实现实例
Apr 26 Python
深入理解Python 代码优化详解
Oct 27 Python
TensorFlow实现创建分类器
Feb 06 Python
python实现excel读写数据
Mar 02 Python
Python3.6.0+opencv3.3.0人脸检测示例
May 25 Python
Linux下python制作名片示例
Jul 20 Python
django从请求到响应的过程深入讲解
Aug 01 Python
对python 多个分隔符split 的实例详解
Dec 20 Python
python2.7 安装pip的方法步骤(管用)
May 05 Python
使用python PIL库实现简单验证码的去噪方法步骤
May 10 Python
Python浮点型(float)运算结果不正确的解决方案
Sep 22 Python
python批量检查两个对应的txt文件的行数是否一致的实例代码
Oct 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
dede3.1分页文字采集过滤规则详说(图文教程)续四
2007/04/03 PHP
基于Zookeeper的使用详解
2013/05/02 PHP
探讨如何把session存入数据库
2013/06/07 PHP
php管理nginx虚拟主机shell脚本实例
2014/11/19 PHP
thinkphp配置文件路径的实现方法
2016/08/30 PHP
extjs 为某个事件设置拦截器
2010/01/15 Javascript
javascript 事件查询综合 推荐收藏
2010/03/10 Javascript
jQuery validate 中文API 附validate.js中文api手册
2010/07/31 Javascript
actionscript与javascript的区别
2011/05/25 Javascript
基于jquery的回到页面顶部按钮
2011/06/27 Javascript
javascript:文字不间断向左移动的实例代码
2013/08/08 Javascript
jquery淡化版banner异步图片文字效果切换图片特效
2014/04/08 Javascript
jQuery函数的第二个参数获取指定上下文中的DOM元素
2014/05/19 Javascript
浅谈jQuery双事件多重加载的问题
2016/10/05 Javascript
Bootstrap3 datetimepicker控件使用实例
2016/12/13 Javascript
JavaScript队列的应用实例详解【经典数据结构】
2017/04/12 Javascript
基于Vue实现tab栏切换内容不断实时刷新数据功能
2017/04/13 Javascript
vue.js模仿京东省市区三级联动的选择组件实例代码
2017/11/22 Javascript
Vue中使用ElementUI使用第三方图标库iconfont的示例
2018/10/11 Javascript
如何正确理解vue中的key详解
2019/11/02 Javascript
[05:42]DOTA2英雄梦之声_第10期_蝙蝠骑士
2014/06/21 DOTA
Python可变参数用法实例分析
2017/04/02 Python
python按综合、销量排序抓取100页的淘宝商品列表信息
2018/02/24 Python
python flask安装和命令详解
2019/04/02 Python
Python3.5以上版本lxml导入etree报错的解决方案
2019/06/26 Python
Python利用WMI实现ping命令的例子
2019/08/14 Python
Python Web框架之Django框架Form组件用法详解
2019/08/16 Python
Python 导入文件过程图解
2019/10/15 Python
python定时任务 sched模块用法实例
2019/11/04 Python
奶茶专卖店创业计划书
2014/01/18 职场文书
挂职自我鉴定
2014/02/26 职场文书
《沙漠中的绿洲》教学反思
2014/04/24 职场文书
绍兴鲁迅故居导游词
2015/02/09 职场文书
利用python进行数据加载
2021/06/20 Python
使用opencv-python如何打开USB或者笔记本前置摄像头
2022/06/21 Python
使用CSS实现按钮边缘跑马灯动画
2023/05/07 HTML / CSS