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实现过滤单个Android程序日志脚本分享
Jan 16 Python
python查找指定具有相同内容文件的方法
Jun 28 Python
Python中字典的浅拷贝与深拷贝用法实例分析
Jan 02 Python
快速了解Python开发中的cookie及简单代码示例
Jan 17 Python
python数据归一化及三种方法详解
Aug 06 Python
python操作cfg配置文件方式
Dec 22 Python
Python输出指定字符串的方法
Feb 06 Python
Django 用户登陆访问限制实例 @login_required
May 13 Python
关于keras中keras.layers.merge的用法说明
May 23 Python
Python如何安装第三方模块
May 28 Python
pycharm设置默认的UTF-8编码模式的方法详解
Jun 01 Python
python通过函数名调用函数的几种方法总结
Jun 07 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
解析htaccess伪静态的规则
2013/06/18 PHP
解析php常用image图像函数集
2013/06/24 PHP
PHP函数积累总结
2019/03/19 PHP
JQuery AJAX实现目录浏览与编辑的代码
2008/10/21 Javascript
javascript 硬盘序列号+其它硬件信息
2008/12/23 Javascript
jQuery中removeClass()方法用法实例
2015/01/05 Javascript
JS数组array元素的添加和删除方法代码实例
2015/06/01 Javascript
jquery实现页面常用的返回顶部效果
2016/03/04 Javascript
js 创建对象 经典模式全面了解
2016/08/16 Javascript
JS控制页面跳转时未请求要跳转的地址怎么回事
2016/10/14 Javascript
利用jqprint插件打印页面内容的实现方法
2018/01/09 Javascript
全站最详细的Vuex教程
2018/04/13 Javascript
vue中input的v-model清空操作
2019/09/06 Javascript
vue开发chrome插件,实现获取界面数据和保存到数据库功能
2020/12/01 Vue.js
使用coverage统计python web项目代码覆盖率的方法详解
2019/08/05 Python
pandas to_excel 添加颜色操作
2020/07/14 Python
Python 高效编程技巧分享
2020/09/10 Python
HTML5印章绘制电子签章图片(中文英文椭圆章、中文英文椭圆印章)
2019/06/03 HTML / CSS
Coach澳大利亚官方网站:美国著名时尚奢侈品牌
2017/05/24 全球购物
澳大利高级泳装品牌:Bondi Born
2018/05/23 全球购物
印度首个本地在线平台:nearbuy
2019/03/28 全球购物
WebSphere 应用服务器都支持哪些认证
2013/12/26 面试题
用Python匹配HTML tag的时候,<.*>和<.*?>有什么区别
2012/11/04 面试题
行政专员工作职责
2013/12/22 职场文书
财务部副经理岗位职责
2014/03/14 职场文书
生育关怀行动实施方案
2014/03/26 职场文书
综合内勤岗位职责
2014/04/14 职场文书
捐献物资倡议书范文
2014/05/19 职场文书
2014年重阳节老干部座谈会上的讲话稿
2014/09/25 职场文书
2014年项目经理工作总结
2014/11/24 职场文书
手机销售员岗位职责
2015/04/11 职场文书
同步小康驻村工作简报
2015/07/20 职场文书
课改心得体会范文
2016/01/25 职场文书
jquery插件实现悬浮的菜单
2021/04/24 jQuery
解决python绘图使用subplots出现标题重叠的问题
2021/04/30 Python
Golang 1.18 多模块Multi-Module工作区模式的新特性
2022/04/11 Golang