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 13 Python
selenium+python 对输入框的输入处理方法
Oct 11 Python
python 遍历列表提取下标和值的实例
Dec 25 Python
python [:3] 实现提取数组中的数
Nov 27 Python
给Python学习者的文件读写指南(含基础与进阶)
Jan 29 Python
python对指定字符串逆序的6种方法(小结)
Apr 02 Python
Selenium之模拟登录铁路12306的示例代码
Jul 31 Python
python 利用Pyinstaller打包Web项目
Oct 23 Python
python实现磁盘日志清理的示例
Nov 05 Python
Python3.9最新版下载与安装图文教程详解(Windows系统为例)
Nov 28 Python
一文读懂python Scrapy爬虫框架
Feb 24 Python
详解Python中*args和**kwargs的使用
Apr 07 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
一个可以找出源代码中所有中文的工具
2006/10/25 PHP
php批量删除数据
2007/01/18 PHP
使用PHP获取汉字的拼音(全部与首字母)
2013/06/27 PHP
php版微信返回用户text输入的方法
2016/11/14 PHP
使用PHPExcel导出Excel表
2018/09/08 PHP
thinkPHP框架中layer.js的封装与使用方法示例
2019/01/18 PHP
JavaScript之HTMLCollection接口代码
2011/04/27 Javascript
JS高级笔记
2011/07/13 Javascript
为指定的元素添加遮罩层的示例代码
2014/01/15 Javascript
jquery控制select的text/value值为选中状态
2014/06/03 Javascript
jQuery实现提示密码强度的代码
2015/07/15 Javascript
基于javascript实现九九乘法表
2016/03/27 Javascript
AngularJS包括详解及示例代码
2016/08/17 Javascript
原生Javascript插件开发实践
2017/01/18 Javascript
详解微信小程序开发之——wx.showToast(OBJECT)的使用
2017/01/18 Javascript
仿淘宝JSsearch搜索下拉深度用法
2018/01/15 Javascript
vue.js 嵌套循环、if判断、动态删除的实例
2018/03/07 Javascript
JavaScript 中的12种循环遍历方法【总结】
2018/05/31 Javascript
在vue中使用回调函数,this调用无效的解决
2020/08/11 Javascript
JS中箭头函数与this的写法和理解
2021/01/14 Javascript
pycharm 使用心得(六)进行简单的数据库管理
2014/06/06 Python
pyspark 读取csv文件创建DataFrame的两种方法
2018/06/07 Python
Django中自定义查询对象的具体使用
2019/10/13 Python
Django2 连接MySQL及model测试实例分析
2019/12/10 Python
运行tensorflow python程序,限制对GPU和CPU的占用操作
2020/02/06 Python
python3 logging日志封装实例
2020/04/08 Python
阿根廷网上配眼镜:SmartBuyGlasses阿根廷
2016/08/19 全球购物
英国皇家邮政海外旗舰店:Royal Mail
2018/02/21 全球购物
英语硕士生求职简历的自我评价
2013/10/15 职场文书
个人租房协议书(范本)
2014/10/14 职场文书
第一书记观后感
2015/06/08 职场文书
消费者投诉书范文
2015/07/02 职场文书
小学一年级班主任工作经验交流材料
2015/11/02 职场文书
推普标语口号大全
2015/12/26 职场文书
总结几个非常实用的Python库
2021/06/26 Python
react 路由Link配置详解
2021/11/11 Javascript