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中实现结构相似的函数调用方法
Mar 10 Python
详解Python中的装饰器、闭包和functools的教程
Apr 02 Python
详谈Python 窗体(tkinter)表格数据(Treeview)
Oct 11 Python
python虚拟环境迁移方法
Jan 03 Python
python实现手机销售管理系统
Mar 19 Python
python覆盖写入,追加写入的实例
Jun 26 Python
TensorFlow tf.nn.conv2d实现卷积的方式
Jan 03 Python
计算pytorch标准化(Normalize)所需要数据集的均值和方差实例
Jan 15 Python
Django 返回json数据的实现示例
Mar 05 Python
python实现opencv+scoket网络实时图传
Mar 20 Python
Python加速程序运行的方法
Jul 29 Python
Python偏函数实现原理及应用
Nov 20 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获取url字符串截取路径的文件名和扩展名的函数
2010/01/22 PHP
利用“多说”制作留言板、评论系统
2015/07/14 PHP
如何优雅的使用 laravel 的 validator验证方法
2018/11/11 PHP
PHP PDOStatement::fetchAll讲解
2019/01/31 PHP
phpStudy vscode 搭建debug调试的教程详解
2020/07/28 PHP
JQuery的一些小应用收集
2010/03/27 Javascript
javascript基础知识大全 便于大家学习,也便于我自己查看
2012/08/17 Javascript
JavaScript实现QueryString获取GET参数的方法
2013/07/02 Javascript
JavaScript中的方法重载实例
2015/03/16 Javascript
浅谈JavaScript中的this指针和引用知识
2016/08/05 Javascript
利用nodejs监控文件变化并使用sftp上传到服务器
2017/02/18 NodeJs
JavaScript实现二叉树定义、遍历及查找的方法详解
2017/12/20 Javascript
vue 过滤器filter实例详解
2018/03/14 Javascript
关于js的三种使用方式(行内js、内部js、外部js)的程序代码
2018/05/05 Javascript
使用Sonarqube扫描Javascript代码的示例
2018/12/26 Javascript
JavaScript继承的特性与实践应用深入详解
2018/12/30 Javascript
jquery将json转为数据字典的实例代码
2019/10/11 jQuery
[46:40]VGJ.T vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
python的迭代器与生成器实例详解
2014/07/16 Python
利用Python自动监控网站并发送邮件告警的方法
2016/08/24 Python
python 实现多维数组(array)排序
2020/02/28 Python
css3中用animation的steps属性制作帧动画
2019/04/25 HTML / CSS
西班牙著名的珠宝首饰品牌:P D PAOLA
2018/09/15 全球购物
Nebula美国官网:便携式投影仪
2019/03/15 全球购物
什么是数据抽象
2016/11/26 面试题
北京泡泡网网络有限公司.net面试题
2012/07/17 面试题
银行会计职员个人的自我评价
2013/09/29 职场文书
会计毕业生自荐信
2013/11/21 职场文书
教学个人的自我评价分享
2014/02/16 职场文书
委托公证书格式
2015/01/26 职场文书
酒店保洁员岗位职责
2015/02/26 职场文书
公司宣传语大全
2015/07/13 职场文书
趣味运动会加油词
2015/07/18 职场文书
导游词之山东红叶谷
2019/10/31 职场文书
动视暴雪取消疫苗禁令 让所有员工返回线下工作
2022/04/03 其他游戏
详解Mysql数据库平滑扩容解决高并发和大数据量问题
2022/05/25 MySQL