python smtplib使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python smtplib使用相关的知识,希望对你有一定的参考价值。

需要使用python3 都是python自带的模块,不需要单独安装
需求: 获取sms接口得到剩余短信量,将剩余结果发送到邮箱便于续费使用

Python SMTP发送邮件

?? SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。
?? python的smtplib提供了一种很方便的途径发送电子邮件。它对smtp协议进行了简单的封装。

demo案例: http://www.runoob.com/python/python-email.html

#!/usr/bin/env python
# -*- coding:utf-8 -*-

import json
import smtplib
import time
from urllib import request
from email.mime.text import MIMEText
from email.header import Header

urlpath = "html页面地址"

# 获取接口json
with request.urlopen(urlpath) as f:
    urljson = f.read().decode("utf-8")   # 将其转换为utf8格式
    jss = json.loads(urljson)                # 默认为str类型, 转换为json格式

# 获取短信的数量
data = jss["data"]["balance"]

HOST = "smtp地址"    # 地址
FROM = "发件人地址"

# TO= “收件人”    这样是给单个人发送邮件
# 给多个人发送邮件  
TO = ["收件人1", "收件人2", "收件人3"]  # 收件人
PassWord = "Gmonitor123456"

Body = "内容: {0}  

 "        "内容  

 "        "内容 

 "        "内容 

			 "        "发送时间: {1}" .format(data, time.strftime("%Y-%m-%d", time.localtime()))

message = MIMEText(Body, ‘plain‘, ‘utf-8‘)  # 邮件内容
subject = ‘sms剩余{0}‘.format(data)   # 邮件主题  注意格式
message[‘Subject‘] = Header(subject, ‘utf-8‘)      # 邮件主题

message[‘From‘] = Header(‘研发-运维‘, ‘utf-8‘)     # 这里显示发件人的信息
message[‘To‘] = Header(‘devops‘, ‘utf-8‘)       # 这里显示收件人的信息,

server = smtplib.SMTP()      # 初始化
server.connect(HOST, "25")    # snmp连接服务器
server.starttls()            # 加密发送
server.login(FROM, PassWord)
server.sendmail(FROM, TO, message.as_string())        # 邮件发送  发件人, 收件人   内容.as_string
server.quit()       # 发送完之后退出

最终显示
技术分享图片

每天发一封邮件 4点59分 自己随便定一个 crontab
   59 4 * /usr/local/bin/python3 /xx/xx/xxSms.py

以上是关于python smtplib使用的主要内容,如果未能解决你的问题,请参考以下文章

编写python的smtplib库发送邮件代码(简洁-原创)

python smtplib发送邮件可直接运行代码

python爬虫-smtplib模块发送邮件

Python + HTMLTestRunner + smtplib 完成测试报告生成及发送测试报告邮件

python smtplib使用

在 Python3 中使用 smtplib 发送多部分电子邮件,但未显示第二部分