lucatd4
Posts: 4
Joined: Tue Jan 31, 2017 5:41 pm

Allegato mail

Thu Dec 21, 2017 2:16 pm

Ciao a tutti, vorrei creare uno script in python che mi invii un file in allegato dal raspberry.
Ho già creato uno script che mi invia delle mail prendendo spunto da vari esempi in rete ma non trovo esempi da integrare per gli allegati.
Incollo lo script in modo che possiate capire meglio. In pratica mi servirebbe uno script che invia per mail uno o più allegati da mettere in crontab.

#Script per notifiche email e file log
#28/10/2017
#V10.0

import RPi.GPIO as GPIO
import smtplib
import time
import subprocess
t =subprocess.check_output(["/opt/vc/bin/vcgencmd","measure_temp"])

GPIO.setmode(GPIO.BCM)


PIN_PROVA16 = 16
PIN_PROVA14 = 14
#PIN_LED = 16
PIN_PROVA17 = 17


GPIO.setup(PIN_PROVA16, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)
GPIO.setup(PIN_PROVA14, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)
#GPIO.setup(PIN_LED, GPIO.OUT, initial=0)
GPIO.setup(PIN_PROVA17, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)


stato16 = GPIO.input(PIN_PROVA16)
parziale16 = 0
count16 = 2

stato14 = GPIO.input(PIN_PROVA14)
parziale14 = 0
count14 = 2

stato17 = GPIO.input(PIN_PROVA17)
parziale17 = 0
count17 = 2

smtpUser = '[email protected]'
smtpPass = 'Gilbert2'

toAdd = '[email protected]'
toCliente = '[email protected]' #inserire mail cliente
fromAdd = smtpUser


subject4 = 'CALDAIA CASA EPINEL ZAVORRA'
subject14 = 'CALDAIA CASA EPINEL FORZATURA'
subject17 = 'CALDAIA CASA EPINEL T ANOMALA'
subject00 = 'GESTIONE CALDAIA EPINEL avviato'


header16 = 'To: ' + toAdd + '\n' + 'From: ' + fromAdd + '\n' + 'Subject: ' + subject4
header14 = 'To: ' + toAdd + '\n' + 'From: ' + fromAdd + '\n' + 'Subject: ' + subject14
header17 = 'To: ' + toAdd + '\n' + 'From: ' + fromAdd + '\n' + 'Subject: ' + subject17
header00 = 'To: ' + toAdd + '\n' + 'From: ' + fromAdd + '\n' + 'Subject: ' + subject00
body00 = 'GESTIONE CALDAIA CASA EPINEL AVVIATO' + '\n' + t


filelog = open("/home/pi/logprovagpio.txt", "a")


print 'Gestione caldaia casa Epinel operativo tra quattro minuti'
print time.strftime("%a %d %B %Y %H:%M:%S")
time.sleep(240)
s = smtplib.SMTP('smtp.gmail.com', 587)
s.ehlo()
s.starttls()
s.ehlo()
s.login(smtpUser, smtpPass)
s.sendmail(fromAdd, toAdd, header00 + '\n\n' + body00)

filelog.write('\n' + time.strftime("%a %d %B %Y %H:%M:%S") + ' GESTIONE CALDAIA CASA EPINEL avviato') #Testo scritto nel file log all'avvio o dopo il reboot


def cambio16():
print time.strftime("%a %d %B %Y %H:%M:%S")
print 'Cambio stato zavorra pin 16 = ' + str(stato4)
filelog.write('\n' + time.strftime("%a %d %B %Y %H:%M:%S") + ' Cambio stato zavorra pin 16 = ' + str(stato4))
s = smtplib.SMTP('smtp.gmail.com', 587)
s.ehlo()
s.starttls()
s.ehlo()
s.login(smtpUser, smtpPass)
body16 = 'Cambio stato zavorra = ' + str(stato16)
s.sendmail(fromAdd, toAdd, header4 + '\n\n' + body16)
#s.sendmail(fromAdd, toCliente, header16 + '\n\n' + body16) #commentare linea se non si vuole inviare mail al cliente
s.quit
print 'Email di notifica per zavorra pin 16 = ' + str(stato16) + ' inviata'
filelog.write('\n' + time.strftime("%a %d %B %Y %H:%M:%S") + ' Email di notifica per zavorra pin 4 = ' + str(stato16) + ' inviata')

def cambio14():
print time.strftime("%a %d %B %Y %H:%M:%S")
print 'Cambio stato forzatura pin 14 = ' + str(stato14)
filelog.write('\n' + time.strftime("%a %d %B %Y %H:%M:%S") + ' Cambio stato forzatura pin 14 = ' + str(stato14))
s = smtplib.SMTP('smtp.gmail.com', 587)
s.ehlo()
s.starttls()
s.ehlo()
s.login(smtpUser, smtpPass)
body14 = 'Cambio stato forzatura = ' + str(stato14)
s.sendmail(fromAdd, toAdd, header14 + '\n\n' + body14)
#s.sendmail(fromAdd, toCliente, header14 + '\n\n' + body14) #commentare linea se non si vuole inviare mail al cliente
s.quit
print 'Email di notifica per forzatura pin 14 = ' + str(stato14) + ' inviata'
filelog.write('\n' + time.strftime("%a %d %B %Y %H:%M:%S") + ' Email di notifica per forzatura pin 14 = ' + str(stato14) + ' inviata')

def cambio17():
print time.strftime("%a %d %B %Y %H:%M:%S")
print 'Cambio stato forzatura pin 17 = ' + str(stato17)
filelog.write('\n' + time.strftime("%a %d %B %Y %H:%M:%S") + ' Cambio stato forzatura pin 14 = ' + str(stato17))
s = smtplib.SMTP('smtp.gmail.com', 587)
s.ehlo()
s.starttls()
s.ehlo()
s.login(smtpUser, smtpPass)
body17 = 'TEMPERATURA ANOMALA -50 = ' + str(stato17)
s.sendmail(fromAdd, toAdd, header17 + '\n\n' + body17)
#s.sendmail(fromAdd, toCliente, header17 + '\n\n' + body17) #commentare linea se non si vuole inviare mail al cliente
s.quit
print 'Email di notifica per forzatura pin 17 = ' + str(stato17) + ' inviata'
filelog.write('\n' + time.strftime("%a %d %B %Y %H:%M:%S") + ' Email di notifica per forzatura pin 17 = ' + str(stato17) + ' inviata')

while True: #loop infinito. inserire i casi all'interno del loop

stato16 = GPIO.input(PIN_PROVA16)

if stato16 != parziale16:
count16 = 1
else:
count16 = count16 + 1
parziale16 = stato16


stato14 = GPIO.input(PIN_PROVA14)

if stato14 != parziale14:
count14 = 1
else:
count14 = count14 + 1
parziale14 = stato14

stato17 = GPIO.input(PIN_PROVA17)

if stato17 != parziale17:
count17 = 1
else:
count17 = count17 + 1
parziale17 = stato17

if count16 > 1000:
count16 = 2
if count16 == 1:
cambio16()
if count14 > 1000:
count14 = 2
if count14 == 1:
cambio14()

if count17 > 1000:
count17 = 2
if count17 == 1:
cambio17()
time.sleep(0.01)




Ringrazio tutti in anticipo!

Return to “Italiano”

Who is online

Users browsing this forum: No registered users and 1 guest