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 相关文章推荐
go语言计算两个时间的时间差方法
Mar 13 Python
python实现的多线程端口扫描功能示例
Jan 21 Python
python生成tensorflow输入输出的图像格式的方法
Feb 12 Python
python 平衡二叉树实现代码示例
Jul 07 Python
Python实现压缩文件夹与解压缩zip文件的方法
Sep 01 Python
在mac下查找python包存放路径site-packages的实现方法
Nov 06 Python
python通过SSH登陆linux并操作的实现
Oct 10 Python
解决安装pyqt5之后无法打开spyder的问题
Dec 13 Python
Python文字截图识别OCR工具实例解析
Mar 05 Python
python安装后的目录在哪里
Jun 21 Python
matlab xlabel位置的设置方式
May 21 Python
Pytorch中的数据集划分&正则化方法
May 27 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
德生PL990的分析评价
2021/03/02 无线电
浅谈COOKIE和SESSION区别
2015/07/19 PHP
php封装的page分页类完整实例代码
2020/02/01 PHP
学习YUI.Ext第五日--做拖放Darg&Drop
2007/03/10 Javascript
js模拟弹出效果代码修正版
2008/08/07 Javascript
JS上传前预览图片实例
2013/03/25 Javascript
如何使用jquery动态加载js,css文件实现代码
2013/04/03 Javascript
js实现带搜索功能的下拉框实时搜索实时匹配
2013/11/05 Javascript
JS将制定内容复制到剪切板示例代码
2014/02/11 Javascript
IE6已终止操作问题的2种情况及解决
2014/04/23 Javascript
js交换排序 冒泡排序算法(Javascript版)
2014/10/04 Javascript
jQuery学习笔记之Ajax用法实例详解
2015/12/01 Javascript
深入理解逻辑表达式的用法 与或非的用法
2016/06/06 Javascript
修改js confirm alert 提示框文字的简单实例
2016/06/10 Javascript
jQuery EasyUI编辑DataGrid用combobox实现多级联动
2016/08/29 Javascript
KnockoutJS 3.X API 第四章之事件event绑定
2016/10/10 Javascript
vue-cli配置环境变量的方法
2018/07/09 Javascript
AngularJS ui-router刷新子页面路由的方法
2018/07/23 Javascript
Vue2.0 实现歌手列表滚动及右侧快速入口功能
2018/08/08 Javascript
Makefile/cmake/node-gyp中区分判断不同平台的方法
2018/12/18 Javascript
JQuery中的常用事件、对象属性与使用方法分析
2019/12/23 jQuery
基于python编写的微博应用
2014/10/17 Python
Python 字典与字符串的互转实例
2017/01/13 Python
seek引发的python文件读写的问题及解决
2019/07/26 Python
python对Excel的读取的示例代码
2020/02/14 Python
使用 prometheus python 库编写自定义指标的方法(完整代码)
2020/06/29 Python
Django封装交互接口代码
2020/07/12 Python
CSS3 media queries + jQuery实现响应式导航
2016/09/30 HTML / CSS
html5与css3小应用
2013/04/03 HTML / CSS
印尼最大的婴儿用品购物网站:Orami
2017/09/28 全球购物
问卷调查计划书
2014/01/10 职场文书
体育活动总结范文
2014/05/04 职场文书
经典演讲稿汇总
2014/05/19 职场文书
无子女夫妻离婚协议书(4篇)
2014/10/20 职场文书
心灵点滴观后感
2015/06/02 职场文书
MySQL性能压力基准测试工具sysbench的使用简介
2021/04/21 MySQL