Python实现发送email的几种常用方法


Posted in Python onAugust 18, 2014

学过Python的人都知道,实用Python实现发送email的功能还是比较简单的,可以通过登录邮件服务来发送,linux下也可以使用调用sendmail命令来发送,还可以使用本地或者是远程的smtp服务来发送邮件,不管是单个,群发,还是抄送都比较容易实现。

本文就把几个最简单的发送邮件方式记录下来,像html邮件,附件等也是支持的,读者在需要时可以参考查询一下。具体方法如下:

1.登录邮件服务

具体代码如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#python2.7x
#send_simple_email_by_account.py @2014-08-18
#author: orangleliu

'''
使用python写邮件 simple
使用126 的邮箱服务
'''

import smtplib
from email.mime.text import MIMEText

SMTPserver = 'smtp.126.com'
sender = '12345678@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-18
'''
用的是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 = "12345678@qq.com"
  r = "123456@163.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-18
'''
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 = "123456@163.com"
  r = s
  mail_send(s, r)

相信本文所示方法对于大家进行Python程序设计能够起到一定的参考借鉴价值。

Python 相关文章推荐
Python获取apk文件URL地址实例
Nov 01 Python
python计算方程式根的方法
May 07 Python
Python基于回溯法子集树模板实现图的遍历功能示例
Sep 05 Python
详细解读tornado协程(coroutine)原理
Jan 15 Python
Python中pip更新和三方插件安装说明
Jul 08 Python
django_orm查询性能优化方法
Aug 20 Python
Python基于机器学习方法实现的电影推荐系统实例详解
Jun 25 Python
Pandas-Cookbook 时间戳处理方式
Dec 07 Python
详解pandas.DataFrame.plot() 画图函数
Jun 14 Python
python 5个顶级异步框架推荐
Sep 09 Python
python 深度学习中的4种激活函数
Sep 18 Python
Python内置数据类型详解
Aug 18 #Python
Python3基础之输入和输出实例分析
Aug 18 #Python
一个计算身份证号码校验位的Python小程序
Aug 15 #Python
基于Python的身份证号码自动生成程序
Aug 15 #Python
Python异常处理总结
Aug 15 #Python
python调用Moxa PCOMM Lite通过串口Ymodem协议实现发送文件
Aug 15 #Python
Python3基础之函数用法
Aug 13 #Python
You might like
PHP4中session登录页面的应用
2008/07/25 PHP
php中print(),print_r(),echo()的区别详解
2014/12/01 PHP
PHP中实现Bloom Filter算法
2015/03/30 PHP
javascript中的undefined 与 null 的区别  补充篇
2010/03/17 Javascript
JS保存、读取、换行、转Json报错处理方法
2013/06/14 Javascript
js阻止默认事件与js阻止事件冒泡示例分享 js阻止冒泡事件
2014/01/27 Javascript
jQuery写fadeTo示例代码
2014/02/21 Javascript
jQuery实现单击和鼠标感应事件
2015/02/01 Javascript
javascript实现图像循环明暗变化的方法
2015/02/25 Javascript
简单谈谈javascript Date类型
2015/09/06 Javascript
微信小程序 增、删、改、查操作实例详解
2017/01/13 Javascript
JavaScrip关于创建常量的知识点
2017/12/07 Javascript
webpack-dev-server自动更新页面方法
2018/02/22 Javascript
JS正则表达式封装与使用操作示例
2019/05/15 Javascript
vue项目部署到nginx/tomcat服务器的实现
2019/08/26 Javascript
15个简单的JS编码标准让你的代码更整洁(小结)
2020/07/16 Javascript
python网络编程示例(客户端与服务端)
2014/04/24 Python
用Python编写脚本使IE实现代理上网的教程
2015/04/23 Python
Django的分页器实例(paginator)
2017/12/01 Python
python控制windows剪贴板,向剪贴板中写入图片的实例
2018/05/31 Python
Python 保存矩阵为Excel的实现方法
2019/01/28 Python
python爬取内容存入Excel实例
2019/02/20 Python
Python3基础教程之递归函数简单示例
2019/06/07 Python
python3图片文件批量重命名处理
2019/10/31 Python
python 有效的括号的实现代码示例
2019/11/11 Python
python实现高斯(Gauss)迭代法的例子
2019/11/20 Python
在Python中使用MongoEngine操作数据库教程实例
2019/12/03 Python
如何在keras中添加自己的优化器(如adam等)
2020/06/19 Python
python 提高开发效率的5个小技巧
2020/10/19 Python
南非最受欢迎的时尚品牌:MRP
2016/09/18 全球购物
时尚、社区、科技:SEVENSTORE
2019/04/26 全球购物
Linux如何压缩可执行文件
2013/10/21 面试题
资产经营总监岗位职责范文
2013/12/01 职场文书
农业生产宣传标语
2014/10/08 职场文书
二审答辩状格式
2015/05/22 职场文书
python实现自定义日志的具体方法
2021/05/28 Python