Python发送email的3种方法_python教程-查字典教程网
Python发送email的3种方法
Python发送email的3种方法
发布时间:2016-12-28 来源:查字典编辑
摘要: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学习
    热门python学习
    脚本专栏子分类