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 19 Python
python解决方案:WindowsError: [Error 2]
Aug 28 Python
利用python批量检查网站的可用性
Sep 09 Python
用Eclipse写python程序
Feb 10 Python
python实现聊天小程序
Mar 13 Python
Python 绘图库 Matplotlib 入门教程
Apr 19 Python
python实现简单tftp(基于udp协议)
Jul 30 Python
python 自定义对象的打印方法
Jan 12 Python
django echarts饼图数据动态加载的实例
Aug 12 Python
Python爬虫爬取糗事百科段子实例分享
Jul 31 Python
Pycharm github配置实现过程图解
Oct 13 Python
python3.7.2 tkinter entry框限定输入数字的操作
May 22 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 循环列出目录内容的函数代码
2010/05/26 PHP
yiic命令时提示“php.exe”不是内部或外部命令的解决方法
2014/12/18 PHP
php批量删除操作(数据访问)
2017/05/23 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
2020/02/27 PHP
清华大学出版的事半功倍系列 javascript全部源代码
2007/05/04 Javascript
js 中 document.createEvent的用法
2010/08/29 Javascript
jquery触发a标签跳转事件示例代码
2013/07/21 Javascript
jQuery仅用3行代码实现的显示与隐藏功能完整实例
2015/10/08 Javascript
AngularJS 输入验证详解及实例代码
2016/07/28 Javascript
VueJs与ReactJS和AngularJS的异同点
2016/12/12 Javascript
Bootstrap标签页(Tab)插件使用方法
2017/03/21 Javascript
Vue.js添加组件操作示例
2018/06/13 Javascript
基于webpack4搭建的react项目框架的方法
2018/06/30 Javascript
Vue强制组件重新渲染的方法讨论
2020/02/03 Javascript
[10:14]2018DOTA2国际邀请赛寻真——paiN Gaming不仅为自己而战
2018/08/14 DOTA
python通过字典dict判断指定键值是否存在的方法
2015/03/21 Python
python 转换 Javascript %u 字符串为python unicode的代码
2016/09/06 Python
深入理解Python中的super()方法
2017/11/20 Python
python中的闭包函数
2018/02/09 Python
浅析python参数的知识点
2018/12/10 Python
python实现websocket的客户端压力测试
2019/06/25 Python
python实现逢七拍腿小游戏的思路详解
2020/05/26 Python
如何使用python socket模块实现简单的文件下载
2020/09/04 Python
Moss Bros官网:英国排名第一的西装店
2020/02/26 全球购物
俄罗斯外国汽车和国产汽车配件网上商店:Движком
2020/04/19 全球购物
值类型与引用类型有什么不同?请举例说明?并分别列举几种相应的数据类型
2015/10/24 面试题
销售自我评价
2013/10/22 职场文书
行政文员岗位职责
2013/11/08 职场文书
门卫岗位职责
2013/11/15 职场文书
《千年梦圆在今朝》教学反思
2014/02/24 职场文书
运动会横幅标语
2014/06/17 职场文书
责任书格式范文
2014/07/28 职场文书
2014年法院工作总结
2014/11/24 职场文书
打架检讨书
2015/01/27 职场文书
Python 中的单分派泛函数你真的了解吗
2021/06/22 Python
Spring Boot 排除某个类加载注入IOC的操作
2021/08/02 Java/Android