[Python] 发送email的几种方式

标签: python email | 发表时间:2014-08-16 06:03 | 作者:lzz957748332
出处:http://blog.csdn.net

python发送email还是比较简单的,可以通过登录邮件服务来发送,linux下也可以使用调用sendmail命令来发送,还可以使用本地或者是远程的smtp服务来发送邮件,不管是单个,群发,还是抄送都比较容易实现。

先把几个最简单的发送邮件方式记录下,像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 = '[email protected]'
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 = "[email protected]"
    r = "[email protected]"
    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-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 = "[email protected]"
    r =  s
    mail_send(s, r)



本文出自  “orangleliu笔记本” 博客,请务必保留此出处  http://blog.csdn.net/orangleliu/article/details/38591513


作者:lzz957748332 发表于2014-8-15 22:03:56 原文链接
阅读:6 评论:0 查看评论

相关 [python email] 推荐:

[Python] 发送email的几种方式

- - CSDN博客推荐文章
python发送email还是比较简单的,可以通过登录邮件服务来发送,linux下也可以使用调用sendmail命令来发送,还可以使用本地或者是远程的smtp服务来发送邮件,不管是单个,群发,还是抄送都比较容易实现. 先把几个最简单的发送邮件方式记录下,像html邮件,附件等也是支持的,需要时查文档即可.

HTML Email 编写指南

- - 阮一峰的网络日志
今天,我想写一个"低技术"问题. 话说我订阅了不少了新闻邮件(Newsletter),比如 JavaScript Weekly. 每周收到一封邮件,了解本周的大事. 有一天,我就在想,是不是我也能做一个这样的邮件. 然后,就发现这事不那么容易. 抛开后台和编辑工作,单单是设计一个Email样板,就需要不少心思.

把Email转成邮政信件

- 山 - 素食者说 Liumiao.com
越来越快的信息时代,总有人想“慢”一点,比如,用明信片发推特,或是把电子邮件转成传统邮政信件. 只要给[email protected]发封邮件,写上不超过一百个词的内容,附上收件人的地址,就会有人把你的电子邮件抄下来,寄给收件人. 这是一个名叫Snail Mail My Email的活动,进行时间为7月15日到8月15日之间,每个人可以寄一封信,完全免费,他们的网站是:http://snailmailmyemail.org/.

[英文] 好用email英文句型

- dayu - 貝兒の生活。旅行。愛。:: 痞客邦 PIXNET ::
我曾在外商公司工作超過8年, 這些英文句型絕對是用的到的機會,就我個人的經驗而言;. 當我意外中發現這樣的網路資訊,感到非常開心,每天在網路世界遊覽,總是希望能獲得. 寶貴的經驗分享或資訊, 它真的讓我"驚艷". 希望透過經理人月刊的文章內容, 分享大家這麼好的學習資訊. 訂閱經理人月刊, 有很多在職場上值得分享的資訊,也許妳/你不是經理,也許不是主管,.

dropbox讲python

- chuang - Initiative
dropbox定制优化CPython虚拟机,自己搞了个malloc调度算法. 那个 !!!111cos(0). 期待这次PyCon China 2011.

Python调试

- - 企业架构 - ITeye博客
原文地址: http://blog.csdn.net/xuyuefei1988/article/details/19399137. 1、下面网上收罗的资料初学者应该够用了,但对比IBM的Python 代码调试技巧:. IBM:包括 pdb 模块、利用 PyDev 和 Eclipse 集成进行调试、PyCharm 以及 Debug 日志进行调试:.

Python WSGI 初探

- - 坚实的幻想
在构建 Web 应用时,通常会有 Web Server 和 Application Server 两种角色. 其中 Web Server 主要负责接受来自用户的请求,解析 HTTP 协议,并将请求转发给 Application Server,Application Server 主要负责处理用户的请求,并将处理的结果返回给 Web Server,最终 Web Server 将结果返回给用户.

Email this page:用 Gmail 彙整網頁資料好方便

- Preston U - T客邦
Gmail 幾乎是很多人都在使用的電子郵件服務,只拿來收收信未免可惜,我們可以利用瀏覽器附加程式,把正在閱讀,有收藏價值的網頁連結直接一鍵寄回 Gmail 信箱,之後不管在電腦端、手機、平板都一樣可以開 Gmail 來仔細看. 這裡就以Chrome的擴充功能「Email this page」為例,並簡介如何把收到的信直接標籤起來,好方便日後整理.

借用WordPress插件Email newsletter轻松打造邮件营销

- 尘世客 - Tuixy博客
在谈到邮件营销这个话题时很多人就会立即联想到大量发送垃圾邮件,就如谈到SEO就会有人想到作弊一样,其实不然. 今天给大家分享个借用WordPress插件Email newsletter轻松打造邮件营销的方案,该方案操作起来非常的简单而且能够给你博客带来更多的收入,此外最关键的是这个方法完全免费. 下载插件:Email newsletter.

防止 Email 地址被机器收集的 WordPress 插件:Antispambot ShortCode

- 沈蚊 - 我爱水煮鱼
有时候想在博客中向用户留言告诉他们读者的 email 地址,让用户直接通过 email 地址联系,但是这样简单展示 email 地址被机器收集,然后收到一大堆 spam. 所以我就写个 WordPress 插件:Antispambot ShortCode,让博主使用 WordPress Shortcode 方式在日志内容中输入 email 地址,向用户正确展示邮件地址而无需担心邮件地址被机器收集.