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

- 日理万妓 2022-07-14 05:09 249阅读 0赞

python发送邮件


python发送普通文本邮件

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

代码示例如下:

  1. #!/usr/bin/env python
  2. import smtplib
  3. import string
  4. HOST = "smtp.sina.com"
  5. SUBJECT = "test hello world"
  6. TO = "**********@qq.com"
  7. FROM = "**********@sina.com"
  8. text = "hello world test, ni hao"
  9. BODY = string.join((
  10. "From: %s" % FROM,
  11. "To: %s" % TO,
  12. "Subject: %s" % SUBJECT,
  13. "",
  14. text
  15. ), "\r\n")
  16. if __name__ == "__main__":
  17. server = smtplib.SMTP()
  18. server.connect(HOST, "25")
  19. server.starttls()
  20. server.login("*********@sina.com", "***********")
  21. server.sendmail(FROM, TO, BODY)
  22. server.quit()

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

  1. [root@bogon python]# python mail_test.py

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

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

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

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

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

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

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

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

  1. From:***********@qq.com
  2. To: **********@qq.com
  3. Subject: ********
  4. *********************(发送内容)

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

发表评论

表情:
评论列表 (有 0 条评论,249人围观)

还没有评论,来说两句吧...

相关阅读

    相关 python发送邮件

    python的smtplib库和email库,可以方便地实现发送邮件。使用远程smtp客户端,并采用授权码登录,《Python网络数据采集》书中给出的例子是这样的:

    相关 Python发送邮件

    一、启用邮箱的SMTP访问 Python发邮件需要有SMTP服务,可以在本地搭建SMTP服务,也可以使用第三方的SMTP服务(比如网易邮箱或QQ邮箱)。 这里我使用了