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使用tablib生成excel文件的简单实现方法
Mar 16 Python
Python使用openpyxl读写excel文件的方法
Jun 30 Python
Python 循环语句之 while,for语句详解
Apr 23 Python
python的格式化输出(format,%)实例详解
Jun 01 Python
Python实现的网页截图功能【PyQt4与selenium组件】
Jul 12 Python
使用python批量化音乐文件格式转换的实例
Jan 09 Python
Django 数据库同步操作技巧详解
Jul 19 Python
Python序列对象与String类型内置方法详解
Oct 22 Python
python使用numpy实现直方图反向投影示例
Jan 17 Python
Python函数默认参数常见问题及解决方案
Mar 26 Python
keras的siamese(孪生网络)实现案例
Jun 12 Python
pandas 按日期范围筛选数据的实现
Feb 20 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
什么是MVC,好东西啊
2007/05/03 PHP
PHP中实现中文字符进制转换原理分析
2011/12/06 PHP
PHP读取文件或采集时解决中文乱码
2021/03/09 PHP
js实现幻灯片播放图片示例代码
2013/11/07 Javascript
使用jQuery快速解决input中placeholder值在ie中无法支持的问题
2014/01/02 Javascript
一个网页标题title的闪动提示效果实现思路
2014/03/22 Javascript
jQuery判断当前点击的是第几个li的代码
2014/09/26 Javascript
javascript常用功能汇总
2015/07/05 Javascript
JavaScript实现删除,移动和复制文件的方法
2015/08/05 Javascript
详解JavaScript对象类型
2016/06/16 Javascript
JavaScript表单即时验证 验证不成功不能提交
2017/08/31 Javascript
详解.vue文件中监听input输入事件(oninput)
2017/09/19 Javascript
Vue3.0数据响应式原理详解
2019/10/09 Javascript
如何基于javascript实现贪吃蛇游戏
2020/02/09 Javascript
Vue项目打包压缩的实现(让页面更快响应)
2020/03/10 Javascript
Python中Collections模块的Counter容器类使用教程
2016/05/31 Python
让python 3支持mysqldb的解决方法
2017/02/14 Python
Django自定义过滤器定义与用法示例
2018/03/22 Python
python实现黑客字幕雨效果
2018/06/21 Python
基于Django框架的权限组件rbac实例讲解
2019/08/31 Python
python 哈希表实现简单python字典代码实例
2019/09/27 Python
pytorch 图像中的数据预处理和批标准化实例
2020/01/15 Python
python numpy库linspace相同间隔采样的实现
2020/02/25 Python
使用keras框架cnn+ctc_loss识别不定长字符图片操作
2020/06/29 Python
浅谈Python描述数据结构之KMP篇
2020/09/06 Python
pyspark对Mysql数据库进行读写的实现
2020/12/30 Python
Html5监听手机摇一摇事件的实现
2019/11/07 HTML / CSS
俄罗斯的精英皮具:Wittchen
2018/01/29 全球购物
夜大毕业生自我评价分享
2013/11/10 职场文书
中国好声音华少广告词
2014/03/17 职场文书
党员教师自我剖析材料
2014/09/29 职场文书
幼儿园教师考核评语
2014/12/31 职场文书
党员考试作弊检讨书1000字
2015/02/16 职场文书
2015年党务工作者个人工作总结
2015/10/22 职场文书
python实现黄金分割法的示例代码
2021/04/28 Python
nginx location 带斜杠【 / 】与不带的区别
2022/04/13 Servers