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构建Hopfield网络的教程
Apr 14 Python
python获取一组数据里最大值max函数用法实例
May 26 Python
Python使用ntplib库同步校准当地时间的方法
Jul 02 Python
Tensorflow卷积神经网络实例
May 24 Python
对python中for、if、while的区别与比较方法
Jun 25 Python
在python中使用xlrd获取合并单元格的方法
Dec 26 Python
python中enumerate() 与zip()函数的使用比较实例分析
Sep 03 Python
TensorFlow2.X使用图片制作简单的数据集训练模型
Apr 08 Python
Iconfont(矢量图标)+iconmoon(图标svg互转)配合javascript实现社交分享系统
Apr 21 Python
Python更改pip镜像源的方法示例
Dec 01 Python
Python 实现PS滤镜中的径向模糊特效
Dec 03 Python
Python Pandas读取Excel日期数据的异常处理方法
Feb 28 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 获取客户端的真实ip
2009/11/30 PHP
php字符串截取的简单方法
2013/07/04 PHP
thinkPHP交易详情查询功能详解
2016/12/02 PHP
PHP设计模式之模板方法模式实例浅析
2018/12/20 PHP
laravel csrf排除路由,禁止,关闭指定路由的例子
2019/10/21 PHP
TP5框架实现签到功能的方法分析
2020/04/05 PHP
使用jquery与图片美化checkbox和radio控件的代码(打包下载)
2010/11/11 Javascript
JavaScript 的继承
2011/10/01 Javascript
js 赋值包含单引号双引号问题的解决方法
2014/02/26 Javascript
Jquery中CSS选择器用法分析
2015/02/10 Javascript
js实现网页右上角滑出会自动消失大幅广告的方法
2015/02/27 Javascript
JS中如何比较两个Json对象是否相等实例代码
2016/07/13 Javascript
移动适配的几种方案(三种方案)
2016/11/25 Javascript
利用jQuery插件imgAreaSelect实现获得选择域的图像信息
2016/12/02 Javascript
js仿微博动态栏功能
2017/02/22 Javascript
requirejs按需加载angularjs文件实例
2017/06/08 Javascript
select2 ajax 设置默认值,初始值的方法
2018/08/09 Javascript
Bootstrap Paginator+PageHelper实现分页效果
2018/12/29 Javascript
原生javascript单例模式的应用实例分析
2020/02/23 Javascript
react使用CSS实现react动画功能示例
2020/05/18 Javascript
关于numpy中np.nonzero()函数用法的详解
2017/02/07 Python
Python建立Map写Excel表实例解析
2018/01/17 Python
Python判断两个文件是否相同与两个文本进行相同项筛选的方法
2019/03/01 Python
详解Python安装tesserocr遇到的各种问题及解决办法
2019/03/07 Python
Pyqt清空某一个QTreeewidgetItem下的所有分支方法
2019/06/17 Python
numpy求平均值的维度设定的例子
2019/08/24 Python
Python+OpenCV+图片旋转并用原底色填充新四角的例子
2019/12/12 Python
Python如何在main中调用函数内的函数方式
2020/06/01 Python
Python sklearn中的.fit与.predict的用法说明
2020/06/28 Python
用python对oracle进行简单性能测试
2020/12/05 Python
英国家具、照明、家居用品网上商店:Wayfair.co.uk
2020/02/13 全球购物
电子专业求职信
2014/06/19 职场文书
村主任“四风”问题个人整改措施
2014/10/04 职场文书
公司员工离职证明书
2014/10/04 职场文书
中考百日冲刺决心书
2015/09/22 职场文书
JavaScript利用html5新方法操作元素类名详解
2021/11/27 Javascript