Как отправить значение переменной по электронной почте, используя raspberry pi и smtplib - PullRequest
1 голос
/ 29 апреля 2019

Я работаю над этим проектом, где у меня есть 3 строковые переменные, которые я хочу отправить их значения на адрес электронной почты.Я был в состоянии отправить текстовое сообщение по электронной почте;Тем не менее, я не мог включить эти значения переменных в. Ниже приведены мои коды:

import serial
import smtplib
import time

serialport = serial.Serial('/dev/ttyUSB0', 115200, timeout = 0.5)
user= 'user@gmail.com'
password= 'password'
receiver= 'receiver@gmail.com
subject= 'Solar tracker status'
header = 'To: ' + email + '\n' + 'From: ' + email + '\n' + 'Subject: ' + 
subject
while True:
    line = serialport.readline()
    result = line.find(";")
    if result > 0:
            str = line.split(";")
            volt=str[0]
            power=str[1]
            temp=str[2]
            body = "\n" + + "Voltage: " + volt + "\n" + "Power: " + power + "\n" + "Temp: " + temp
            print header + '\n' + body
            s=smtplib.SMTP('smtp.gmail.com',587)
            s.ehlo()
            s.starttls()
            s.ehlo()
            s.login(email, password)
            s.sendmail(email, email, header + '\n\n' + body)
            s.quit

При запуске этого скрипта я получил это сообщение об ошибке:

File "testserial.py", line 23, in <module>
    body = "\n" + + "Voltage: " + volt
TypeError: bad operand type for unary +: 'str'

Я попытался преобразоватьпеременная в строку, используя str (вольт), затем получил это сообщение об ошибке:

File "testserial.py", line 23, in <module>
    str(volt)
TypeError: 'list' object is not callable

Я не могу понять это, потому что они изначально в строковом формате, так как я смог записать их в текстовый файл, используя% s без необходимости конвертировать его.

Думаю, я просто не знаю, как передать переменную в тело письма.Пожалуйста, помогите!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...