[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拼接字符串的七种方式
忘了在哪看到一位编程大牛调侃,他说程序员每天就做两件事,其中之一就是处理字符串.相信不少同学会有同感. 几乎任何一种编程语言,都把字符串列为最基础和不可或缺的数据类型.而拼接字符串是必备的一种技能.今 ...
随机推荐
- POJ3260:The Fewest Coins(混合背包)
Description Farmer John has gone to town to buy some farm supplies. Being a very efficient man, he a ...
- UDK——入门开发流程
1.入门级參考UnrealScript代码 UnrealScript模仿JAVA,可是又有巨大的不同,主要是它本身具有完好的结构,貌似UDK把一切都安排好了,就像在盖楼一样.面对一幢已经完工的设计静止 ...
- android——使用自带录屏工具进行屏幕录像
在做开源项目的时候,想传一个gif效果图上去.但是,要有连贯的动画效果.所以,就想到先录制视频,然后视频转gif.但是,用第三录屏软件总是不完美. 那么,怎么办呢? android4.4 提供了自带录 ...
- 关于document.write()重写页面
今天碰到了一个以前没注意的问题即:document.write(),在此拿来分享! document.write是最基本的JavaScript命令之一,这个命令简单地打印指定的文本内容到页面上(注意是 ...
- TransactionScrope
测这个东西其实是由生产环境数据库报错,ORA-14450错误. 测试结果是: 1)使用transactionscrope时,数据库连接打开需在scrope内打开: 2)TransactionScope ...
- C语言基础知识汇总
c语言执行步骤: 一.编辑程序 1.编写c语言的代码,保存在扩展名.c的文件中,源文件. 2.编写代码有三种方式: a.vi命令方式系统自带 b.ultraedit网络下载 c.xcode网络下载 二 ...
- linux相关小工具的使用(一)————代码相关工具
在linux环境下,对于程序员来说,知道使用一些好用的小工具,对源代码的阅读.编译和调试都有着事半功倍的效果,这里我也是边学边写的原则,把自己知道的一丁点小知识分享给大家. 一. 源代码的阅读 首先 ...
- perl6之'Hello World'
安装完perl6之后,当然是要写一下Hello World了. 因为perl6的脚本一般都很短小,所以用不着很笨重的IDE之类的东西,我们用VIM,sublime text这种小型的编辑器 来开始pe ...
- CSS3弹性盒模型布局模块介绍
来源:Robert’s talk原文:http://robertnyman.com/2010/12/02/css3-flexible-box-layout-module-aka-flex-box-in ...
- Palindrome(POJ 1159 DP)
Palindrome Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 58168 Accepted: 20180 De ...