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抛出异常、自定义异常, 传递异常
Jun 20 Python
Python 如何访问外围作用域中的变量
Sep 11 Python
python之信息加密题目详解
Jun 26 Python
Python+selenium点击网页上指定坐标的实例
Jul 05 Python
Python pandas.DataFrame 找出有空值的行
Sep 09 Python
python实现数据清洗(缺失值与异常值处理)
Dec 02 Python
使用 Python 写一个简易的抽奖程序
Dec 08 Python
Python中sorted()排序与字母大小写的问题
Jan 14 Python
python如何求数组连续最大和的示例代码
Feb 04 Python
Tensorflow 卷积的梯度反向传播过程
Feb 10 Python
golang/python实现归并排序实例代码
Aug 30 Python
Python+Selenium实现读取网易邮箱验证码
Mar 13 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
Syphon 秘笈
2021/03/03 冲泡冲煮
PHP 内存缓存加速功能memcached安装与用法
2009/09/03 PHP
codeigniter数据库操作函数汇总
2014/06/12 PHP
CMS中PHP判断系统是否已经安装的方法示例
2014/07/26 PHP
PHP中使用CURL获取页面title例子
2015/01/07 PHP
PHP模拟登陆163邮箱发邮件及获取通讯录列表的方法
2015/03/07 PHP
浅谈php调用python文件
2019/03/29 PHP
javascript判断数组内是否重复的方法
2015/04/21 Javascript
深入理解javascript作用域第二篇之词法作用域和动态作用域
2016/07/24 Javascript
关于原生js中bind函数的简单实现
2016/08/10 Javascript
深入理解es6块级作用域的使用
2019/03/28 Javascript
小程序实现按下录音松开识别语音
2019/11/22 Javascript
python使用datetime模块计算各种时间间隔的方法
2015/03/24 Python
Python之Scrapy爬虫框架安装及简单使用详解
2017/12/22 Python
python在非root权限下的安装方法
2018/01/23 Python
pandas实现将dataframe满足某一条件的值选出
2019/06/12 Python
python中将两组数据放在一起按照某一固定顺序shuffle的实例
2019/07/15 Python
Django 创建后台,配置sqlite3教程
2019/11/18 Python
centos7中安装python3.6.4的教程
2019/12/11 Python
python 通过手机号识别出对应的微信性别(实例代码)
2019/12/22 Python
Python3.7黑帽编程之病毒篇(基础篇)
2020/02/04 Python
python 实现非极大值抑制算法(Non-maximum suppression, NMS)
2020/10/15 Python
HTML5中新标签和常用标签详解
2014/03/07 HTML / CSS
欧洲最大的品牌水上运动服装和设备在线零售商:Wuituit Outlet
2018/05/05 全球购物
巴西美妆购物网站:Kutiz Beauté
2019/03/13 全球购物
Unineed旗下时尚轻奢网站:FABHunt
2019/05/13 全球购物
家长学校工作方案
2014/05/07 职场文书
文明班级建设方案
2014/05/15 职场文书
2014年班长个人工作总结
2014/11/14 职场文书
预备党员转正意见
2015/06/01 职场文书
医疗纠纷调解协议书
2015/08/06 职场文书
2019客服个人年终工作总结范文
2019/07/08 职场文书
2019运动会广播加油稿汇总
2019/08/21 职场文书
python基于scrapy爬取京东笔记本电脑数据并进行简单处理和分析
2021/04/14 Python
golang中的空slice案例
2021/04/27 Golang
css样式important规则的正确使用方式
2022/06/10 HTML / CSS