手机
当前位置:查字典教程网 >脚本专栏 >python >Python发送email的3种方法
Python发送email的3种方法
摘要:python发送email还是比较简单的,可以通过登录邮件服务来发送,linux下也可以使用调用sendmail命令来发送,还可以使用本地或...

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 = '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服务来发送(本地或者是远程服务器)

复制代码 代码如下:

#!/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的3种方法】相关文章:

python中定义结构体的方法

python实现定制交互式命令行的方法

python中文乱码的解决方法

Python学习资料

Python开发的单词频率统计工具wordsworth使用方法

Python批量修改文件后缀的方法

用Python脚本生成Android SALT扰码的方法

Python实现的几个常用排序算法实例

使用Python获取Linux系统的各种信息

Python中使用中文的方法

精品推荐
分类导航