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 相关文章推荐
django接入新浪微博OAuth的方法
Jun 29 Python
Python 数据结构之旋转链表
Feb 25 Python
聊聊Python中的pypy
Jan 12 Python
python实现批量按比例缩放图片效果
Mar 30 Python
对python PLT中的image和skimage处理图片方法详解
Jan 10 Python
python调用c++ ctype list传数组或者返回数组的方法
Feb 13 Python
python实现两张图片拼接为一张图片并保存
Jul 16 Python
python中matplotlib实现随鼠标滑动自动标注代码
Apr 23 Python
哪些是python中web开发框架
Jun 17 Python
Python爬取12306车次信息代码详解
Aug 12 Python
python合并多个excel文件的示例
Sep 23 Python
Python批量将csv文件转化成xml文件的实例
May 10 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
数字转英文
2006/12/06 PHP
linux下 C语言对 php 扩展
2008/12/14 PHP
PHP rmdir()函数的用法总结
2019/07/02 PHP
html下载本地
2006/06/19 Javascript
Js动态创建div
2008/09/25 Javascript
javascript下数值型比较难点说明
2010/06/07 Javascript
JQuery UI DatePicker中z-index默认为1的解决办法
2010/09/28 Javascript
jquery实现弹出窗口效果的实例代码
2013/11/28 Javascript
使用JQUERY进行后台页面布局控制DIV实现左右式
2014/01/07 Javascript
原生javascript实现无间缝滚动示例
2014/01/28 Javascript
Javascript保存网页为图片借助于html2canvas库实现
2014/09/05 Javascript
JS实现的数组全排列输出算法
2015/03/19 Javascript
jquery插件star-rating.js实现星级评分特效
2015/04/15 Javascript
Javascript的无new构建实例详解
2016/05/15 Javascript
jQuery UI插件实现百度提词器效果
2016/11/21 Javascript
微信小程序五星评分效果实现代码
2017/04/06 Javascript
JS实现的四级密码强度检测功能示例
2017/05/11 Javascript
JavaScript字符串转数字的5种方法及遇到的坑
2018/07/16 Javascript
使用JS判断移动端手机横竖屏状态
2018/07/30 Javascript
Vuex 在Vue 组件中获得Vuex 状态state的方法
2018/08/27 Javascript
echarts实现词云自定义形状的示例代码
2019/02/20 Javascript
微信小程序scroll-view锚点链接滚动跳转功能
2019/12/12 Javascript
python使用matplotlib绘制柱状图教程
2017/02/08 Python
在Windows中设置Python环境变量的实例讲解
2018/04/28 Python
Python 计算任意两向量之间的夹角方法
2019/07/05 Python
Django model 中设置联合约束和联合索引的方法
2019/08/06 Python
基于python实现坦克大战游戏
2020/10/27 Python
Python中使用aiohttp模拟服务器出现错误问题及解决方法
2020/10/31 Python
施华洛世奇德国官网:SWAROVSKI德国
2017/02/01 全球购物
实习单位鉴定评语
2014/04/26 职场文书
婚礼父母答谢词
2015/01/04 职场文书
教师岗位职责
2015/02/03 职场文书
2016年端午节寄语
2015/12/04 职场文书
优质护理服务心得体会
2016/01/22 职场文书
关于战胜挫折的名言警句大全!
2019/07/05 职场文书
2019年英语版感谢信(8篇)
2019/09/29 职场文书