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 getopt 参数处理小示例
Jun 09 Python
六个窍门助你提高Python运行效率
Jun 09 Python
Python 专题三 字符串的基础知识
Mar 19 Python
python爬虫框架scrapy实战之爬取京东商城进阶篇
Apr 24 Python
Django中间件工作流程及写法实例代码
Feb 06 Python
浅谈Python 列表字典赋值的陷阱
Jan 20 Python
实例讲解Python中浮点型的基本内容
Feb 11 Python
python3+pyqt5+itchat微信定时发送消息的方法
Feb 20 Python
Python3 实现爬取网站下所有URL方式
Jan 16 Python
Python统计文本词汇出现次数的实例代码
Feb 27 Python
Python性能测试工具Locust安装及使用
Dec 01 Python
Python 数据结构之十大经典排序算法一文通关
Oct 16 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
snoopy PHP版的网络客户端提供本地下载
2008/04/15 PHP
PHP iconv 解决utf-8和gb2312编码转换问题
2010/04/12 PHP
PHP实现链式操作的核心思想
2015/06/23 PHP
Zend Framework动作助手FlashMessenger用法详解
2016/03/05 PHP
利用PHP将图片转换成base64编码的实现方法
2016/09/13 PHP
jquery插件 autoComboBox 下拉框
2010/12/22 Javascript
jQuery实用基础超详细介绍
2013/04/11 Javascript
JavaSript中变量的作用域闭包的深入理解
2014/05/12 Javascript
Angularjs通过指令监听ng-repeat渲染完成后执行脚本的方法
2016/12/31 Javascript
Vue.js实现移动端短信验证码功能
2017/03/29 Javascript
解决Mac安装thrift因bison报错的问题
2018/05/17 Javascript
JavaScript实现点击出现图片并统计点击次数功能示例
2018/07/23 Javascript
JS 数组和对象的深拷贝操作示例
2020/06/06 Javascript
关于element的表单组件整理笔记
2021/02/05 Javascript
python计数排序和基数排序算法实例
2014/04/25 Python
python求crc32值的方法
2014/10/05 Python
详解Python中的装饰器、闭包和functools的教程
2015/04/02 Python
Python实现将目录中TXT合并成一个大TXT文件的方法
2015/07/15 Python
通过数据库向Django模型添加字段的示例
2015/07/21 Python
Python黑魔法@property装饰器的使用技巧解析
2016/06/16 Python
Python基础篇之初识Python必看攻略
2016/06/23 Python
Python设计模式之职责链模式原理与用法实例分析
2019/01/11 Python
使用Django实现把两个模型类的数据聚合在一起
2020/03/28 Python
使用jupyter notebook直接打开.md格式的文件
2020/04/10 Python
CSS3中线性颜色渐变的一些实现方法
2015/07/14 HTML / CSS
GLAMGLOW香港官网:明星出镜前的秘密武器
2017/03/16 全球购物
英国水族馆和池塘用品购物网站:Warehouse Aquatics
2019/08/29 全球购物
西班牙最好的在线购买葡萄酒的商店:Vinoseleccion
2019/10/30 全球购物
大学生职业生涯规划范文——找准自我,定位人生
2014/01/23 职场文书
班组建设经验交流材料
2014/05/12 职场文书
美国留学经济担保书
2014/05/20 职场文书
驾驶员安全责任书
2014/07/22 职场文书
2015元旦家电促销活动策划方案
2014/12/09 职场文书
《刷子李》教学反思
2016/02/20 职场文书
Pytorch 如何加速Dataloader提升数据读取速度
2021/05/28 Python
Python快速实现一键抠图功能的全过程
2021/06/29 Python