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中title()方法的使用简介
May 20 Python
浅谈python中的getattr函数 hasattr函数
Jun 14 Python
Django如何自定义分页
Sep 25 Python
Python3调用百度AI识别图片中的文字功能示例【测试可用】
Mar 13 Python
Python直接赋值、浅拷贝与深度拷贝实例分析
Jun 18 Python
PYTHON EVAL的用法及注意事项解析
Sep 06 Python
python实现画循环圆
Nov 23 Python
Scrapy框架基本命令与settings.py设置
Feb 06 Python
pandas使用之宽表变窄表的实现
Apr 12 Python
Python selenium使用autoIT上传附件过程详解
May 26 Python
解决Keras 自定义层时遇到版本的问题
Jun 16 Python
python统计mysql数据量变化并调用接口告警的示例代码
Sep 21 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
实用函数8
2007/11/08 PHP
php连接mysql数据库代码
2009/03/10 PHP
php文件上传表单摘自drupal的代码
2011/02/15 PHP
php跨域cookie共享使用方法
2014/02/20 PHP
PHP管理依赖(dependency)关系工具 Composer的自动加载(autoload)
2014/08/18 PHP
header与缓冲区之间的深层次分析
2016/07/30 PHP
php、mysql查询当天,查询本周,查询本月的数据实例(字段是时间戳)
2017/02/04 PHP
静态的动态续篇之来点XML
2006/08/15 Javascript
javascript onmouseout 解决办法
2010/07/17 Javascript
微信小程序购物商城系统开发系列-目录结构介绍
2016/11/21 Javascript
使用 vue.js 构建大型单页应用
2018/02/10 Javascript
angularJs中$http获取后台数据的实例讲解
2018/08/08 Javascript
对layui中表单元素的使用详解
2018/08/15 Javascript
JavaScript学习笔记之图片库案例分析
2019/01/08 Javascript
JavaScript寄生组合式继承原理与用法分析
2019/01/11 Javascript
vue elementUI table表格数据 滚动懒加载的实现方法
2019/04/04 Javascript
微信小程序云开发 搭建一个管理小程序
2019/05/17 Javascript
vue.js实现三级菜单效果
2019/10/19 Javascript
JavaScript如何实现图片处理与合成
2020/05/29 Javascript
原生javascript如何实现共享onload事件
2020/07/03 Javascript
python实现用户登录系统
2016/05/21 Python
Python 爬虫多线程详解及实例代码
2016/10/08 Python
python中set()函数简介及实例解析
2018/01/09 Python
python如何重载模块实例解析
2018/01/25 Python
wxpython多线程防假死与线程间传递消息实例详解
2019/12/13 Python
django框架单表操作之增删改实例分析
2019/12/16 Python
Python3变量与基本数据类型用法实例分析
2020/02/14 Python
Python闭包及装饰器运行原理解析
2020/06/17 Python
CSS3中的弹性布局em运用入门详解 1em等于多少像素
2021/02/08 HTML / CSS
canvas学习和滤镜实现代码
2018/08/22 HTML / CSS
GAP阿联酋官网:GAP UAE
2017/11/30 全球购物
经典优秀个人求职自荐信格式
2013/09/25 职场文书
考试不及格的检讨书
2014/01/22 职场文书
承诺书格式
2014/06/03 职场文书
教师年度考核个人总结
2015/02/12 职场文书
全民创业工作总结
2015/08/13 职场文书