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迭代器实例简析
Sep 25 Python
Django 前后台的数据传递的方法
Aug 08 Python
Pycharm设置界面全黑的方法
May 23 Python
Python用61行代码实现图片像素化的示例代码
Dec 10 Python
Python实现word2Vec model过程解析
Dec 16 Python
利用jupyter网页版本进行python函数查询方式
Apr 14 Python
Django调用百度AI接口实现人脸注册登录代码实例
Apr 23 Python
python实现梯度下降算法的实例详解
Aug 17 Python
python实现粒子群算法
Oct 15 Python
python获取对象信息的实例详解
Jul 07 Python
Python中itertools库的四个函数介绍
Apr 06 Python
Python序列化模块JSON与Pickle
Jun 05 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程序中防止盗链
2008/04/09 PHP
PHP数据集构建JSON格式及新数组的方法
2012/11/07 PHP
百度实时推送api接口应用示例
2014/10/21 PHP
PHP中Session和Cookie是如何操作的
2015/10/10 PHP
PHP API接口必备之输出json格式数据示例代码
2017/06/27 PHP
javascript 中对象的继承〔转贴〕
2007/01/22 Javascript
js程序中美元符号$是什么
2008/06/05 Javascript
jQuery 通过事件委派一次绑定多种事件,以减少事件冗余
2010/06/30 Javascript
用JavaScript对JSON进行模式匹配 (Part 2 - 实现)
2010/07/17 Javascript
JavaScript实现找出字符串中第一个不重复的字符
2014/09/03 Javascript
JS模式之简单的订阅者和发布者模式完整实例
2015/06/30 Javascript
jQuery实现默认是闭合的FAQ展开效果菜单
2015/09/14 Javascript
高性能JavaScript循环语句和条件语句
2016/01/20 Javascript
为什么JavaScript没有块级作用域
2016/05/22 Javascript
JavaScript中setTimeout的那些事儿
2016/11/14 Javascript
解析Vue.js中的组件
2018/02/02 Javascript
解决淘宝cnpm 安装后cnpm不是内部或外部命令的问题
2018/05/17 Javascript
vue-cli 使用vue-bus来全局控制的实例讲解
2018/09/15 Javascript
详解微信小程序支付流程与梳理
2019/07/16 Javascript
vuex actions异步修改状态的实例详解
2019/11/06 Javascript
python读取word文档的方法
2015/05/09 Python
Python实现股市信息下载的方法
2015/06/15 Python
python矩阵的转置和逆转实例
2018/12/12 Python
pandas 把数据写入txt文件每行固定写入一定数量的值方法
2018/12/28 Python
Django框架设置cookies与获取cookies操作详解
2019/05/27 Python
Python基于pip实现离线打包过程详解
2020/05/15 Python
Wilson体育用品官网:美国著名运动器材品牌
2019/05/12 全球购物
校园十大歌手策划书
2014/02/01 职场文书
第一批党的群众路线教育实践活动工作总结
2014/03/03 职场文书
2014年党员承诺书范文
2014/05/20 职场文书
单位委托书格式范本
2014/09/29 职场文书
2014年扶贫工作总结
2014/11/18 职场文书
2015年基层党支部工作总结
2015/05/21 职场文书
离婚财产分割协议书
2015/08/11 职场文书
mysql使用instr达到in(字符串)的效果
2022/04/03 MySQL
Mysql数据库事务的脏读幻读及不可重复读详解
2022/05/30 MySQL