树莓派获取温度和图片发送到邮箱

树莓派调试成功相机、温度传感器后

#!/usr/bin/python
# -*- coding: UTF-8 -*-
import re
import smtplib
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.header import Header
import subprocess

msg_from = ['nya@nyanya.cc', '340145294@qq.com', '2638415338@qq.com', '1413935637@qq.com']


def mail(to):
    print("发送到"+to)
    print("start")
    # 获取传感器信息
    p = subprocess.Popen('cat /sys/bus/w1/devices/28-3c01a8167760/w1_slave',
              stdout=subprocess.PIPE,
              stderr=subprocess.PIPE,
              shell=True
              )
    p.wait()
    out = p.stdout.read()
    out = str(out)
    out1 = "获取到的数值:"+ out + "为啥打印失败"
    print(out1)
    # 获取温度

    out_b = re.findall("\d\d\d\d\d", out1)

    out_c = float(out_b[0])
    out_c = out_c/1000
    out_c = str(out_c)
    print("当前温度:"+out_c)
    #b = float(a[0])
    #print("温度是:"+str(b))
    # print(out.decode(encoding='UTF-8',errors='strict'))
    subprocess.run(["raspistill", "-o", "new.jpg", "-t", "200"])

    msg_from = "891422822@qq.com" # 发送方
    pwd = "oxopodyppnrabebd" #授权码
    # to = "nya@nyanya.cc" # 对方邮箱

    msgRoot = MIMEMultipart('related')
    msgRoot['From'] = Header(msg_from, 'utf-8')
    msgRoot['To'] = Header(to, 'utf-8')
    subject = '当前环境温度' + out_c
    msgRoot['Subject'] = Header(subject, 'utf-8')

    msgAlternative = MIMEMultipart('alternative')
    msgRoot.attach(msgAlternative)

    mail_msg = """
    <p>状况</p>
    <p>图片:</p>
    <p><img src="cid:image1" width="800" height="600"></p>
    """
    msgAlternative.attach(MIMEText(mail_msg, 'html', 'utf-8'))

    # 指定图片为当前目录
    fp = open('new.jpg', 'rb')
    msgImage = MIMEImage(fp.read())
    fp.close()

    # 定义图片 ID,在 HTML 文本中引用
    msgImage.add_header('Content-ID', '<image1>')
    msgRoot.attach(msgImage)

    try:
        ss = smtplib.SMTP_SSL("smtp.qq.com", 465)
        ss.login(msg_from, pwd)
        ss.sendmail(msg_from, to,  msgRoot.as_string())
        print("邮件发送成功")

    except smtplib.SMTPException:
        print( "Error: 无法发送邮件")


for i in msg_from:
    mail(i)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值