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中str.format()详解
Mar 12 Python
Ubuntu安装Jupyter Notebook教程
Oct 18 Python
python jieba分词并统计词频后输出结果到Excel和txt文档方法
Feb 11 Python
Python中的单行、多行、中文注释方法
Jul 19 Python
python实现ip代理池功能示例
Jul 05 Python
cProfile Python性能分析工具使用详解
Jul 22 Python
Django ORM多对多查询方法(自定义第三张表&ManyToManyField)
Aug 09 Python
python+selenium 点击单选框-radio的实现方法
Sep 03 Python
Django框架反向解析操作详解
Nov 28 Python
flask框架渲染Jinja模板与传入模板变量操作详解
Jan 25 Python
python实现图片,视频人脸识别(dlib版)
Nov 18 Python
分享unittest单元测试框架中几种常用的用例加载方法
Dec 02 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实现网上点歌(二)
2006/10/09 PHP
php.ini 配置文件的深入解析
2013/06/17 PHP
Linux下手动编译安装PHP扩展的例子分享
2014/07/15 PHP
php使用标签替换的方式生成静态页面
2015/05/21 PHP
网页里控制图片大小的相关代码
2006/06/25 Javascript
Javascript 构造函数 实例分析
2008/11/26 Javascript
10款新鲜出炉的 jQuery 插件(Ajax 插件,有幻灯片、图片画廊、菜单等)
2011/06/08 Javascript
JavaScript 判断日期格式是否正确的实现代码
2011/07/04 Javascript
经过绑定元素时会多次触发mouseover和mouseout事件
2014/02/28 Javascript
实现placeholder效果的方案汇总
2015/06/11 Javascript
javascript实现鼠标放上后下边对应内容变换的效果
2015/08/06 Javascript
深入浅析Bootstrap列表组组件
2016/05/03 Javascript
Node.js 使用AngularJS的方法示例
2018/05/11 Javascript
AngularJS实现与后台服务器进行交互的示例讲解
2018/08/13 Javascript
详解单页面路由工程使用微信分享及二次分享解决方案
2019/02/22 Javascript
扫微信小程序码实现网站登陆实现解析
2019/08/20 Javascript
微信小程序 数据缓存实现方法详解
2019/08/26 Javascript
vue动态渲染svg、添加点击事件的实现
2020/03/13 Javascript
vue css 引入asstes中的图片无法显示的四种解决方法
2020/03/16 Javascript
Python实现Windows和Linux之间互相传输文件(文件夹)的方法
2017/05/08 Python
Python中eval带来的潜在风险代码分析
2017/12/11 Python
浅谈pandas中Dataframe的查询方法([], loc, iloc, at, iat, ix)
2018/04/10 Python
对pandas的行列名更改与数据选择详解
2018/11/12 Python
python实现微信定时每天和女友发送消息
2019/04/29 Python
用uWSGI和Nginx部署Flask项目的方法示例
2019/05/05 Python
Python matplotlib画图时图例说明(legend)放到图像外侧详解
2020/05/16 Python
Python tkinter实现日期选择器
2021/02/22 Python
百联网上商城:i百联
2017/01/28 全球购物
乌克兰电子和家用电器商店:Foxtrot
2019/07/23 全球购物
大一学生的职业生涯规划书范文
2014/01/19 职场文书
教学器材管理制度
2014/01/26 职场文书
食品安全承诺书范文
2014/08/29 职场文书
2015年教师节贺卡寄语
2015/03/24 职场文书
圣贤教育改变命运观后感
2015/06/16 职场文书
MySQL 时间类型的选择
2021/06/05 MySQL
使用python+pygame开发消消乐游戏附完整源码
2021/06/10 Python