[Python] 发送email的几种方式
python发送email还是比較简单的,能够通过登录邮件服务来发送,linux下也能够使用调用sendmail命令来发送,还能够使用本地或者是远程的smtp服务来发送邮件,无论是单个,群发,还是抄送都比較easy实现。
先把几个最简单的发送邮件方式记录下,像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服务来发送(本地或者是远程server)
#!/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] 发送email的几种方式的更多相关文章
- Python 发送 email 的两种方式
Python发送email的两种方式,分别为使用登录邮件服务器.调用sendmail命令来发送三种方法 Python发送email比较简单,可以通过登录邮件服务来发送,linux下也可以使用调用sen ...
- python爬虫-----Python访问http的几种方式
爬取页面数据,我们需要访问页面,发送http请求,以下内容就是Python发送请求的几种简单方式: 会使用到的库 urllib requests 1.urlopen import urllib. ...
- python实现单例模式的三种方式及相关知识解释
python实现单例模式的三种方式及相关知识解释 模块模式 装饰器模式 父类重写new继承 单例模式作为最常用的设计模式,在面试中很可能遇到要求手写.从最近的学习python的经验而言,singlet ...
- day2 编程语言介绍、Python运行程序的两种方式、变量
一 编程语言介绍 1. 机器语言 用计算机能理解的二进制指令直接编写程序,直接控制硬件 2. 汇编语言 用英文标签取代二进制指令编写程序,本质也是直接控制硬件 3. 高级语言 用人能理解的表达方式去编 ...
- Python 操作 MySQL 的5种方式(转)
Python 操作 MySQL 的5种方式 不管你是做数据分析,还是网络爬虫,Web 开发.亦或是机器学习,你都离不开要和数据库打交道,而 MySQL 又是最流行的一种数据库,这篇文章介绍 Pytho ...
- Python实现屏幕截图的两种方式
Python实现屏幕截图的两种方式 使用windows API 使用PIL中的ImageGrab模块 下面对两者的特点和用法进行详细解释. 一.Python调用windows API实现屏幕截图 好处 ...
- Python 输出百分比的两种方式
Python 输出百分比的两种方式 注: 在python3环境下测试. 方式1:直接使用参数格式化:{:.2%} {:.2%}: 显示小数点后2位 显示小数点后2位: >>> pri ...
- Python 配置日志的几种方式
Python配置日志的几种方式 作为开发者,我们可以通过以下3种方式来配置logging: (1)使用Python代码显式的创建loggers,handlers和formatters并分别调用它们的配 ...
- Python拼接字符串的七种方式
忘了在哪看到一位编程大牛调侃,他说程序员每天就做两件事,其中之一就是处理字符串.相信不少同学会有同感. 几乎任何一种编程语言,都把字符串列为最基础和不可或缺的数据类型.而拼接字符串是必备的一种技能.今 ...
随机推荐
- dev grdicontrol 根据条件改变行颜色,字体颜色等
dev grdicontrol 根据条件改变行背景 dev grdicontrol 根据条件改变字体颜色 dev grdicontrol 根据条件改变某个单元格背景 不用写代码 打开gridc ...
- Maxiee的Vim入门日记(4)——安装windows下的Cscope
Maxiee今天又学到了一个插件——Cscope.Cscope 是一款用于查看大型工程中的代码的软件.它使用方便,支持快速查找 C Symbol.function 等在工程中所有出现的位置,而不用自己 ...
- Android应用程序进程启动过程的源代码分析
文章转载至CSDN社区罗升阳的安卓之旅,原文地址: http://blog.csdn.net/luoshengyang/article/details/6747696 Android 应用程序框架层创 ...
- struts1面试题
由于找了很久的工作都没有找的,只能四处收集那个面试题的.和看面试题的 还有那个记忆力也不是很好了的,而那些公司面试的时候总会有一个面试题的! 在这里分享给大家(那个本来是想上传文件的,但是找不到的 ...
- Eclipse 整合cvs教程及遇到的问题
今天看着视频教程学习cvs版本管理,现在很多企业开发或许都采用了版本管理器,因为这样可以更好的进行团退开发与代码管理,所以学习一种版本管理技术还是很重要的. 最原始的独立版本管理是由两部分组成的,一个 ...
- Object-c学习之路十(NSNumber&NSValue)
// // main.m // NSNumberAndNSValue // // Created by WildCat on 13-7-26. // Copyright (c) 2013年 wildc ...
- Scrapy学习系列(一):网页元素查询CSS Selector和XPath Selector
这篇文章主要介绍创建一个简单的spider,顺便介绍一下对网页元素的选取方式(css selector, xpath selector). 第一步:创建spider工程 打开命令行运行以下命令: sc ...
- mac上访问samba服务器
打开safari输入smb://ip,回车后出现输入用户名密码对话框,若是匿名则选择作为“客人”选项 例子 smb://192.168.2.3
- werkzeug源码阅读笔记(二) 上
因为第一部分是关于初始化的部分的,我就没有发布出来~ wsgi.py----第一部分 在分析这个模块之前, 需要了解一下WSGI, 大致了解了之后再继续~ get_current_url()函数 很明 ...
- [转]让Sublime Text2支持浏览器中预览
转自http://www.imququ.com/post/view-sublime-text-2-file-in-browser.html 1.点击菜单Tools -> New Plugin.. ...