Python发送email的3种方法


Posted in Python onApril 28, 2015

python发送email还是比较简单的,可以通过登录邮件服务来发送,linux下也可以使用调用sendmail命令来发送,还可以使用本地或者是远程的smtp服务来发送邮件,不管是单个,群发,还是抄送都比较容易实现。
先把几个最简单的发送邮件方式记录下,像html邮件,附件等也是支持的,需要时查文档即可
1、登录邮件服务

#!/usr/bin/env python  

# -*- coding: utf-8 -*-  

#python2.7x  

#send_simple_email_by_account.py  @2014-07-30  

#author: orangleliu  

  

''''' 

使用python写邮件 simple 

使用126 的邮箱服务 

'''  

  

import smtplib  

from email.mime.text import MIMEText  

  

SMTPserver = 'smtp.126.com'  

sender = 'liuzhizhi123@126.com'  

password = "xxxx"  

  

message = 'I send a message by Python. 你好'  

msg = MIMEText(message)  

  

msg['Subject'] = 'Test Email by Python'  

msg['From'] = sender  

msg['To'] = destination  

  

mailserver = smtplib.SMTP(SMTPserver, 25)  

mailserver.login(sender, password)  

mailserver.sendmail(sender, [sender], msg.as_string())  

mailserver.quit()  

print 'send email success' 

2、调用sendmail命令 (linux)

# -*- coding: utf-8 -*-  

#python2.7x  

#send_email_by_.py  

#author: orangleliu  

#date: 2014-08-15  

''''' 

用的是sendmail命令的方式 

 

这个时候邮件还不定可以发出来,hostname配置可能需要更改 

'''  

  

from email.mime.text import MIMEText  

from subprocess import Popen, PIPE  

  

def get_sh_res():  

    p = Popen(['/Application/2.0/nirvana/logs/log.sh'], stdout=PIPE)  

    return str(p.communicate()[0])  

  

def mail_send(sender, recevier):  

    print "get email info..."  

    msg = MIMEText(get_sh_res())  

    msg["From"] = sender  

    msg["To"] = recevier  

    msg["Subject"] = "Yestoday interface log results"  

    p = Popen(["/usr/sbin/sendmail", "-t"], stdin=PIPE)  

    res = p.communicate(msg.as_string())  

    print 'mail sended ...'  

  

if __name__ == "__main__":  

    s = "957748332@qq.com"  

    r = "zhizhi.liu@chinacache.com"  

    mail_send(s, r) 

3、使用smtp服务来发送(本地或者是远程服务器)
#!/usr/bin/env python  

# -*- coding: utf-8 -*-  

#python2.7x  

#send_email_by_smtp.py  

#author: orangleliu  

#date: 2014-08-15  

''''' 

linux 下使用本地的smtp服务来发送邮件 

前提要开启smtp服务,检查的方法 

#ps -ef|grep sendmail 

#telnet localhost 25 

 

这个时候邮件还不定可以发出来,hostname配置可能需要更改 

'''  

import smtplib  

from email.mime.text import MIMEText  

from subprocess import Popen, PIPE  

  

  

def get_sh_res():  

    p = Popen(['/Application/2.0/nirvana/logs/log.sh'], stdout=PIPE)  

    return str(p.communicate()[0])  

  

def mail_send(sender, recevier):  

    msg = MIMEText(get_sh_res())  

    msg["From"] = sender  

    msg["To"] = recevier  

    msg["Subject"] = "Yestoday interface log results"  

    s = smtplib.SMTP('localhost')  

    s.sendmail(sender, [recevier], msg.as_string())  

    s.quit()  

    print 'send mail finished...'  

  

if __name__ == "__main__":  

    s = "zhizhi.liu@chinacache.com"  

    r =  s  

    mail_send(s, r) 
Python 相关文章推荐
python连接mongodb操作数据示例(mongodb数据库配置类)
Dec 31 Python
Python异常学习笔记
Feb 03 Python
Python爬取网易云音乐上评论火爆的歌曲
Jan 19 Python
浅谈python中的数字类型与处理工具
Aug 02 Python
Python模拟随机游走图形效果示例
Feb 06 Python
在Pycharm中项目解释器与环境变量的设置方法
Oct 29 Python
Python并发:多线程与多进程的详解
Jan 24 Python
OpenCV+Python识别车牌和字符分割的实现
Jan 31 Python
Python docutils文档编译过程方法解析
Jun 23 Python
PyQt5实现多张图片显示并滚动
Jun 11 Python
实例详解Python的进程,线程和协程
Mar 13 Python
Python+Tkinter打造签名设计工具
Apr 01 Python
Python中使用partial改变方法默认参数实例
Apr 28 #Python
调试Python程序代码的几种方法总结
Apr 28 #Python
解析Python中的异常处理
Apr 28 #Python
python调用java模块SmartXLS和jpype修改excel文件的方法
Apr 28 #Python
Python EOL while scanning string literal问题解决方法
Sep 18 #Python
python中尾递归用法实例详解
Apr 28 #Python
在Python中使用元类的教程
Apr 28 #Python
You might like
用PHP和ACCESS写聊天室(五)
2006/10/09 PHP
php 文章采集正则代码
2009/12/28 PHP
PHP计划任务之关闭浏览器后仍然继续执行的函数
2010/07/22 PHP
php检测文本的编码
2015/07/26 PHP
php实现面包屑导航例子分享
2015/12/19 PHP
[原创]站长必须要知道的javascript广告代码
2007/05/30 Javascript
javascript实现二分查找法实现代码
2007/11/12 Javascript
在多个页面使用同一个HTML片段《续》
2011/03/04 Javascript
js鼠标点击事件在各个浏览器中的写法及Event对象属性介绍
2013/01/24 Javascript
js的正则test,match,exec详细解析
2014/01/29 Javascript
微信中一些常用的js方法汇总
2015/03/12 Javascript
js实现网页收藏功能
2015/12/17 Javascript
js从外部获取图片的实现方法
2016/08/05 Javascript
vue.js中mint-ui框架的使用方法
2017/05/12 Javascript
基于JavaScript实现无限加载瀑布流
2017/07/21 Javascript
vue获取input输入值的问题解决办法
2017/10/17 Javascript
基于JavaScript实现报警器提示音效果
2017/10/27 Javascript
ES6基础之字符串和函数的拓展详解
2019/08/22 Javascript
jQuery开发仿QQ版音乐播放器
2020/07/10 jQuery
浅谈vue项目,访问路径#号的问题
2020/08/14 Javascript
原生js实现购物车
2020/09/23 Javascript
vue3弹出层V3Popup实例详解
2021/01/04 Vue.js
JavaScript中clientWidth,offsetWidth,scrollWidth的区别
2021/01/25 Javascript
Python监控主机是否存活并以邮件报警
2015/09/22 Python
使用简单工厂模式来进行Python的设计模式编程
2016/03/01 Python
Python求正态分布曲线下面积实例
2019/11/20 Python
在notepad++中实现直接运行python代码
2019/12/18 Python
django数据模型on_delete, db_constraint的使用详解
2019/12/24 Python
详解canvas多边形(蜘蛛图)的画法示例
2018/01/29 HTML / CSS
Office DEPOT法国官网:欧迪办公用品采购
2018/01/03 全球购物
介绍一下Linux文件的记录形式
2013/09/29 面试题
大学生毕业自我鉴定范文
2013/11/03 职场文书
中学生家长评语大全
2014/04/16 职场文书
农村党支部书记司法四风问题对照检查材料
2014/09/26 职场文书
Python实现查询剪贴板自动匹配信息的思路详解
2021/07/09 Python
httpclient调用远程接口的方法
2022/08/14 Java/Android