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的PIL模块来进行图片对比
Feb 18 Python
TensorFlow的权值更新方法
Jun 14 Python
python-str,list,set间的转换实例
Jun 27 Python
Python基于百度云文字识别API
Dec 13 Python
Django CSRF跨站请求伪造防护过程解析
Jul 31 Python
python 实现多线程下载视频的代码
Nov 15 Python
基于Python批量生成指定尺寸缩略图代码实例
Nov 20 Python
python 实现按对象传值
Dec 26 Python
解决Tensorboard可视化错误:不显示数据 No scalar data was found
Feb 15 Python
Python如何实现线程间通信
Jul 30 Python
一文带你掌握Pyecharts地理数据可视化的方法
Feb 06 Python
Python提取PDF指定内容并生成新文件
Jun 09 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 imagegrabscreen和imagegrabwindow(截取网站缩略图)的实例代码
2013/11/07 PHP
php时间戳转换的示例
2014/03/31 PHP
PHP小偷程序的设计与实现方法详解
2016/10/15 PHP
arguments对象
2006/11/20 Javascript
在修改准备发的批量美化select+可修改select时,在非IE下发现了几个问题
2007/01/09 Javascript
学习YUI.Ext 第六天--关于树TreePanel(Part 2异步获取节点)
2007/03/10 Javascript
dojo 之基础篇(三)之向服务器发送数据
2007/03/24 Javascript
用jQuery实现检测浏览器及版本的脚本代码
2008/01/22 Javascript
JQuery AJAX实现目录浏览与编辑的代码
2008/10/21 Javascript
你必须知道的Javascript知识点之"单线程事件驱动"的使用
2013/04/23 Javascript
鼠标拖动实现DIV排序示例代码
2013/10/14 Javascript
影响jQuery使用的14个方面
2014/09/01 Javascript
原生js和jQuery随意改变div属性style的名称和值
2014/10/22 Javascript
JavaScript中的Function函数
2015/08/27 Javascript
解析Node.js异常处理中domain模块的使用方法
2016/02/16 Javascript
JS+HTML5手机开发之滚动和惯性缓动实现方法分析
2016/06/12 Javascript
JavaScript基于原型链的继承
2016/06/22 Javascript
javascirpt实现2个iframe之间传值的方法
2016/06/30 Javascript
jQuery实现动态给table赋值的方法示例
2017/07/04 jQuery
Angular2关于@angular/cli默认端口号配置的问题
2017/07/15 Javascript
AngularJs 禁止模板缓存的方法
2017/11/28 Javascript
小程序指纹验证的实现代码
2018/12/04 Javascript
vue-for循环嵌套操作示例
2019/01/28 Javascript
基于vue-cli搭建多模块且各模块独立打包的项目
2019/06/12 Javascript
[01:28]国服启动器接入蒸汽平台操作流程视频
2021/03/11 DOTA
python删除文件示例分享
2014/01/28 Python
python基础教程之数字处理(math)模块详解
2014/03/25 Python
Python Flask-web表单使用详解
2017/11/18 Python
Django框架的中的setting.py文件说明详解
2018/10/15 Python
python基于win32api实现键盘输入
2020/12/09 Python
Bibloo罗马尼亚网站:女装、男装、童装及鞋子和配饰
2019/07/20 全球购物
渡河少年教学反思
2014/02/12 职场文书
街道社区活动报告
2015/02/05 职场文书
个人先进事迹总结
2015/02/26 职场文书
党员个人自我评价
2015/03/03 职场文书
HTML+CSS制作心跳特效的实现
2021/05/26 HTML / CSS