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计数排序和基数排序算法实例
Apr 25 Python
python制作websocket服务器实例分享
Nov 20 Python
基于python中staticmethod和classmethod的区别(详解)
Oct 24 Python
简单谈谈Python的pycurl模块
Apr 07 Python
Python对多属性的重复数据去重实例
Apr 18 Python
详谈python3中用for循环删除列表中元素的坑
Apr 19 Python
python3.6使用pickle序列化class的方法
Oct 22 Python
对python csv模块配置分隔符和引用符详解
Dec 12 Python
python设计微型小说网站(基于Django+Bootstrap框架)
Jul 08 Python
python字典setdefault方法和get方法使用实例
Dec 25 Python
jupyter notebook远程访问不了的问题解决方法
Jan 11 Python
pytorch 预训练模型读取修改相关参数的填坑问题
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
JS中encodeURIComponent函数用php解码的代码
2012/03/01 PHP
PHP模板解析类实例
2015/07/09 PHP
PHP导出带样式的Excel示例代码
2016/08/28 PHP
yii2.0整合阿里云oss上传单个文件的示例
2017/09/19 PHP
EasyUI实现二级页面的内容勾选的方法
2015/03/01 Javascript
Javascript中的包装类型介绍
2015/04/02 Javascript
JS实现新浪微博效果带遮罩层的弹出框代码
2015/10/12 Javascript
jQuery移动页面开发中的触摸事件与虚拟鼠标事件简介
2015/12/03 Javascript
jQuery实现右键菜单、遮罩等效果代码
2016/09/27 Javascript
jquery实现刷新随机变化样式特效(tag标签样式)
2017/02/03 Javascript
ES5 ES6中Array对象去除重复项的方法总结
2017/04/27 Javascript
jQuery用户头像裁剪插件cropbox.js使用详解
2017/06/07 jQuery
jQuery鼠标移动图片上实现放大效果
2017/06/25 jQuery
JavaScript基本语法_动力节点Java学院整理
2017/06/26 Javascript
JavaScript中错误正确处理方式小结你用对了吗
2017/10/10 Javascript
一次记住JavaScript的6个正则表达式方法
2018/02/22 Javascript
基于vue中对鼠标划过事件的处理方式详解
2018/08/22 Javascript
微信小程序实现简单跑马灯效果
2020/05/26 Javascript
jQuery模拟html下拉多选框的原生实现方法示例
2019/05/30 jQuery
微信小程序把百度地图坐标转换成腾讯地图坐标过程详解
2019/07/10 Javascript
[02:41]DOTA2亚洲邀请赛小组赛第三日 赛事回顾
2015/02/01 DOTA
基于python实现的抓取腾讯视频所有电影的爬虫
2016/04/22 Python
基础的十进制按位运算总结与在Python中的计算示例
2016/06/28 Python
浅谈Python编程中3个常用的数据结构和算法
2019/04/30 Python
对Python3中列表乘以某一个数的示例详解
2019/07/20 Python
西班牙英格列斯百货英国官网:El Corte Inglés英国
2017/10/30 全球购物
Tomcat Mysql datasource数据源配置
2015/12/28 面试题
广州盈通面试题
2015/12/05 面试题
室内设计专业个人的自我评价
2013/10/19 职场文书
2013年大学生的自我鉴定
2013/10/24 职场文书
数学系毕业生求职信
2014/05/29 职场文书
生物科学专业自荐书
2014/06/20 职场文书
小学优秀教师材料
2014/12/15 职场文书
2015年预算员工作总结
2015/05/14 职场文书
最美劳动诗,致敬所有的劳动者!
2019/07/12 职场文书
教你利用python实现企业微信发送消息
2021/05/23 Python