8.python学习笔记:python发送邮件

python发送邮件


python发送普通文本邮件

之前在设置zabbix邮件报警的时候使用mail命令进行发送,其实python也有自己的模块支持邮件发送(smtplib模块),下面给出示例,向大家介绍如何使用python进行邮件发送。

代码示例如下:

#!/usr/bin/env python

import smtplib
import string

HOST = "smtp.sina.com"
SUBJECT = "test hello world"
TO = "**********@qq.com"
FROM = "**********@sina.com"
text = "hello world test, ni hao"
BODY = string.join((
       "From: %s" % FROM,
       "To: %s" % TO,
       "Subject: %s" % SUBJECT,
       "",
       text
       ), "\r\n")


if __name__ == "__main__":
    server = smtplib.SMTP()
    server.connect(HOST, "25")
    server.starttls()
    server.login("*********@sina.com", "***********")
    server.sendmail(FROM, TO, BODY)
    server.quit()

通过如下命令执行邮件发送:

[root@bogon python]# python mail_test.py 

可以看到收到了邮件内容:
这里写图片描述

下面我们对smtplib的方法进行介绍:

1.smtplib.SMTP这个构造函数,产生一个可以连接smtp服务器的对象。

2.接下来几个函数分别指定了所要访问的邮件服务器以及开放的端口,还有登录的用户名和密码:

server.connect(HOST, "25")
server.starttls()
server.login("*********@sina.com", "***********")

其中starttls是对邮件的传输过程采用加密传输协议。

3.核心的方法在sendmail方法中,他指定了发送邮件的from(发件方),to(收件方),以及BODY。

这里的BODY有着自己的格式:

From:***********@qq.com
To: **********@qq.com
Subject: ********

*********************(发送内容)

可以采用string把这些内容添加进来,生成一个完整的字符串。更好的方法使采用email模块,它支持更多的内容类型(文字、图片和音频等)。

猜你喜欢

转载自blog.csdn.net/linux_player_c/article/details/53379027