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分割和拼接字符串
Nov 01 Python
学习python之编写简单乘法口诀表实现代码
Feb 27 Python
Python实现信用卡系统(支持购物、转账、存取钱)
Jun 24 Python
详解Python中heapq模块的用法
Jun 28 Python
python判断字符串编码的简单实现方法(使用chardet)
Jul 01 Python
Python学习小技巧之列表项的推导式与过滤操作
May 20 Python
TensorFlow高效读取数据的方法示例
Feb 06 Python
python pandas 如何替换某列的一个值
Jun 09 Python
Python3 JSON编码解码方法详解
Sep 06 Python
pytorch 模拟关系拟合——回归实例
Jan 14 Python
python 链接sqlserver 写接口实例
Mar 11 Python
python实现黄金分割法的示例代码
Apr 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 获取文件路径(灵活应用__FILE__)
2013/02/15 PHP
php正则替换处理HTML页面的方法
2015/06/17 PHP
JSQL SQLProxy 的 php 版本代码
2010/05/05 Javascript
js 获取坐标 通过JS得到当前焦点(鼠标)的坐标属性
2013/01/04 Javascript
jQuery 淡出一个图像到另一个图像的实现代码
2013/06/12 Javascript
解析javascript 浏览器关闭事件
2013/07/08 Javascript
JS小游戏之仙剑翻牌源码详解
2014/09/25 Javascript
JQuery 使用attr方法实现下拉列表选中
2014/10/13 Javascript
JavaScript中的继承方式详解
2015/02/11 Javascript
JS实现兼容性较好的随屏滚动效果
2015/11/09 Javascript
JS使用eval解析JSON的注意事项分析
2015/11/14 Javascript
dedecms页面如何获取会员状态的实例代码
2016/03/15 Javascript
不间断循环滚动效果的实例代码(必看篇)
2016/10/08 Javascript
vue 的点击事件获取当前点击的元素方法
2018/09/15 Javascript
vue路由--网站导航功能详解
2019/03/29 Javascript
vue配置文件实现代理v2版本的方法
2019/06/21 Javascript
js+springMVC 提交数组数据到后台的实例
2019/09/21 Javascript
[41:11]完美世界DOTA2联赛PWL S2 Inki vs Magma 第一场 11.22
2020/11/24 DOTA
Python备份目录及目录下的全部内容的实现方法
2016/06/12 Python
python实现机器学习之多元线性回归
2018/09/06 Python
python添加菜单图文讲解
2019/06/04 Python
Python hexstring-list-str之间的转换方法
2019/06/12 Python
Python3加密解密库Crypto的RSA加解密和签名/验签实现方法实例
2020/02/11 Python
超级实用的8个Python列表技巧
2020/08/24 Python
python3访问字典里的值实例方法
2020/11/18 Python
Python中Pyspider爬虫框架的基本使用详解
2021/01/27 Python
使用CSS3的rem属性制作响应式页面布局的要点解析
2016/05/24 HTML / CSS
美国顶级品牌男士大码服装店:DXL
2017/08/30 全球购物
美国渔具店:FishUSA
2019/08/07 全球购物
优秀毕业生求职推荐信范文
2013/11/21 职场文书
学校文明单位申报材料
2014/05/06 职场文书
建筑工地宣传标语
2014/06/18 职场文书
清洁员岗位职责
2015/02/15 职场文书
解决golang 关于全局变量的坑
2021/05/06 Golang
Nginx隐藏式跳转(浏览器URL跳转后保持不变)
2022/04/07 Servers
Python使用mitmproxy工具监控手机 下载手机小视频
2022/04/18 Python