Skicka mail ifrån Raspberry Pi

Moderators: hekj, Telldus

Post Reply
orjan
Posts: 7
Joined: Fri Mar 17, 2023 9:45 am

Skicka mail ifrån Raspberry Pi

Post by orjan »

Hittade en bra guide på hur man skickar mail ifrån Raspberry Pi. http://www.sbprojects.com/projects/rasp ... /exim4.php

Valde att installera SSMTP.

Skickar ett mail då någon ringer på dörrklockan. Raden echo("Dörrklocka - OFF"); kommer aldrig att utföras med Nexa LML-719. Tex rörelsevakten Nexa LMDT-609 skickar en off signal. Timer no_mail nyttjas för att enbart skicka ett mail inom en minut samt att sätta device status till off.

run_mail.sh (with attribute execute)

Code: Select all

#!/bin/bash
cd /home/pi/nexahome
mail -s $1 $2 < $3
12.bsh "Trådlös dörrklocka Nexa LML-710"

Code: Select all

if (deviceIsOn("12")) {
  echo("Dörrklocka - ON");

  if (!timerIsRunning("no_mail")) {
    execFile("/home/pi/nexahome/run_mail.sh");
    execParam("Dörrklocka");	
    execParam("namn@gmail.com");
    execParam("/home/pi/nexahome/doorbell.txt");
    startTimer("no_mail", 1 * 60);  // 60 sekunder
  }
}
else {
  echo("Dörrklocka - OFF");
}
no_mail.bsh

Code: Select all

deviceOff("12");
doorbell.txt

Code: Select all

Någon har ringt på ...
johmei
Posts: 23
Joined: Fri Mar 17, 2023 9:45 am

Re: Skicka mail ifrån Raspberry Pi

Post by johmei »

Grymt, snodde rakt av för att skicka mail så jag vet när och hur mycket växterna på balkongen fått vatten! =)
Ps. jag har inte flyttat ut växterna på balkongen än men förbereder mig på en solig sommar Ds.
johmei
Posts: 23
Joined: Fri Mar 17, 2023 9:45 am

Re: Skicka mail ifrån Raspberry Pi

Post by johmei »

Det fungerar ju fint så länge man har allt lika som i exemplet men så fort jag börjar ändra lite med innehållet i mailet och de execParam som skickas till run_mail så blir det knas. Jag lyckas inte skicka flera ord som parameter, hur gör man det?

Exempelvis skulle jag vilja skicka:
Subject: "Vattnat och klart"
Destination: min@mail
Text body: "bla bla sensorvärde bla bla"

12.bsh

Code: Select all

S1 = "Vattnat och klart";
S2 = "min@mail";
S3 = "Nu har växterna vattnats! Fuktigheten var: " + getSensorValue("57") + " klockan " + getSensorTimestamp("57") + " /RPI";
mail() {
    execFile("/home/pi/nexahome/run_mail1.sh");
    execParam(S1);
    execParam(S2);
//    execParam("/home/pi/nexahome/vattenmail.txt");
    execParam(S3);
}


if (deviceIsOn("12")) {
//	echo("Mail skickas");
//	echo("Fuktighet:" + getSensorValue("57"));
	if (!timerIsRunning("no_mail")) {
		mail();
		startTimer("no_mail", 20);  // Inga fler mail pÃ¥ 20 sekunder
	}
}
else {
//	echo("Mail har skickats");
} 
run_mail1.sh

Code: Select all

#!/bin/bash
echo $3 | mail -s $1 $2
Men det som händer när jag försöker skicka ett subject med flera ord är att dessa ord uppfattas av run_mail som separata argument.

Till det hela hör att allt fungerar fint om jag skriver in strängar direkt i run_mail. Att lägga strängarna i fil som ovan fungerar men bökigt om jag vill ha dynamisk text.

Code: Select all

#!/bin/bash
echo "vattnaT blommorna nu och det fungerar med flera ord i mailet" | mail -s "Vattnat och klart" "min@mail"
rhis
Posts: 8
Joined: Fri Mar 17, 2023 9:45 am

Re: Skicka mail ifrån Raspberry Pi

Post by rhis »

Jag skulle nog titta på hur man hanterar strängar i "save_temp.bsh".
Post Reply