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中的内存泄漏
Apr 23 Python
Python 创建空的list,以及append用法讲解
May 04 Python
Python基于OpenCV库Adaboost实现人脸识别功能详解
Aug 25 Python
python的常用模块之collections模块详解
Dec 06 Python
python 将日期戳(五位数时间)转换为标准时间
Jul 11 Python
浅析Python+OpenCV使用摄像头追踪人脸面部血液变化实现脉搏评估
Oct 17 Python
python3实现弹弹球小游戏
Nov 25 Python
Python实现把类当做字典来访问
Dec 16 Python
Python 从attribute到property详解
Mar 05 Python
PyCharm永久激活方式(推荐)
Sep 22 Python
python 服务器运行代码报错ModuleNotFoundError的解决办法
Sep 16 Python
python Scrapy框架原理解析
Jan 04 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
PHP调用三种数据库的方法(3)
2006/10/09 PHP
php设计模式 Visitor 访问者模式
2011/06/28 PHP
解析PHP的Yii框架中cookie和session功能的相关操作
2016/03/17 PHP
php生成txt文件实例代码介绍
2016/04/28 PHP
javascript定时变换图片实例代码
2013/03/17 Javascript
JavaScript运行时库属性一览表
2014/03/14 Javascript
Javascript WebSocket使用实例介绍(简明入门教程)
2014/04/16 Javascript
基于BootStrap Metronic开发框架经验小结【七】数据的导入、导出及附件的查看处理
2016/05/12 Javascript
微信小程序-消息提示框实例
2016/11/24 Javascript
原生js实现新闻列表展开/收起全文功能
2017/01/20 Javascript
详解Javascript百度地图接口开发文档中的类和方法
2017/02/07 Javascript
JavaScript实现翻页功能(附效果图)
2017/02/16 Javascript
Angularjs Promise实例详解
2018/03/15 Javascript
React+Webpack快速上手指南(小结)
2018/08/15 Javascript
jQuery实现视频展示效果
2020/05/30 jQuery
js 图片懒加载的实现
2020/10/21 Javascript
浅谈vue在html中出现{{}}的原因及解决方式
2020/11/16 Javascript
[42:48]完美世界DOTA2联赛PWL S3 Magma vs INK ICE 第二场 12.11
2020/12/16 DOTA
深入浅析Python中join 和 split详解(推荐)
2016/06/30 Python
Python使用matplotlib绘制余弦的散点图示例
2018/03/14 Python
Python中文件的读取和写入操作
2018/04/27 Python
python微信公众号之关键词自动回复
2018/06/15 Python
python获取时间及时间格式转换问题实例代码详解
2018/12/06 Python
如何通过python画loss曲线的方法
2019/06/26 Python
解决Jupyter Notebook使用parser.parse_args出现错误问题
2020/04/20 Python
详解纯CSS3制作的20种loading动效
2017/07/05 HTML / CSS
美国知名艺术画网站:Art.com
2017/02/09 全球购物
英国Radley包德国官网:Radley London德国
2019/11/18 全球购物
历史学专业大学生找工作的自我评价
2013/10/16 职场文书
前台文员职责范本
2014/03/07 职场文书
献爱心捐款倡议书
2014/05/14 职场文书
应聘教师自荐书
2014/06/16 职场文书
合作意向书
2014/07/30 职场文书
政风行风自查自纠报告
2014/10/21 职场文书
写给父母的感谢信
2015/01/22 职场文书
微信小程序用户授权最佳实践指南
2021/05/08 Javascript