Auswertungen mit dem IMAP/POP3 Modul

Ich möchte E-Mails auswerten um IPS Scripte zu starten. Dazu gab es im Forum schon einige Beispiele die ich aber nicht nutzen möchte da ich die E-Mails nicht mehrfach abrufen will, denn ich habe ja schon das native IMAP/POP3 Modul.
Aber wie komme ich an die Betreffzeile und den Text des IMAP/POP3 Moduls? Es gibt zwar eine Variable „Lastmesssage“ in der aber nur ein UnixTimestamp steht. Im Webfront werden aber auch Betreff und per klick auch der Text angezeigt. Wie kommt man daran? In der Doku konnte ich darüber nichts finden.

Ab jetzt in der Doku zu finden:
IMAP: IP-Symcon :: Automatisierungssoftware
POP3: IP-Symcon :: Automatisierungssoftware

So mach ich´s; getriggert auf die Variable vom IMAP - Neue Nachrichten:


if ($IPS_SENDER == "Variable") {
	$cache = IMAP_GetCachedMails(52725 /*[System\Email\RemoteMail]*/);
	if (count($cache) == 0) {
		return;
	}
	//Betreff zerlegen
	$par = explode(" ", $cache[0]['Subject']);
	$cmd = $par[0];
	$value = $par[1];
	IPS_LogMessage("Remote", "CMD = ".$cmd);
	IPS_LogMessage("Remote", "PAR = ".$value);
	//Befehl und Parameter auswerten
	switch ($cmd) {
	 case "Anwesenheit": //Anwesenheit 1
	   if ($value == 1) {
	     FS20_SwitchMode(53106 /*[System\Anwesenheit\sys_M_lv_absent]*/, false);
	     IPS_LogMessage("Remote", "Anwesenheit Ein");
	   } elseif ($value == 0) { //Anwesenheit 0
	     FS20_SwitchMode(53106 /*[System\Anwesenheit\sys_M_lv_absent]*/, true);
	     IPS_LogMessage("Remote", "Anwesenheit Aus");
	   }
	   $mbox = imap_open(xxx);
		imap_delete($mbox, 1);
		imap_expunge($mbox);
		imap_close($mbox);
	   break;
	 case "Bewässerung": //Bewässerung 1
	   if ($value == 1) {
	     SetValue(33175 /*[Garten\Bewässerung\Status]*/, true);
	     IPS_LogMessage("Remote", "Bewässerung Ein");
	   } elseif ($value == 0) { //Bewässerung 0
	     SetValue(33175 /*[Garten\Bewässerung\Status]*/, false);
	     IPS_LogMessage("Remote", "Bewässerung Aus");
	   }
	   $mbox = imap_open(xxx);
		imap_delete($mbox, 1);
		imap_expunge($mbox);
		imap_close($mbox);
	   break;
...usw

Edit: Ach ja, Mail-Betreff muss zB so aussehen „Anwesenheit 0“.

Das


imap_open

-Zeugs mach ich noch zusätzlich, um die Mail danach vom Server zu löschen.

Hallo zusammen,

ich mach das so:

  • zuerst lese ich die Pop3-Mails und schreibe Teile davon in eine SQL-Datenbank
  • vergleiche dabei, ob die Mails neu sind
  • suche im Betreff und in den ersten Stellen des Textes nach einer Kennung hinter der sich die Scriptnummer befindet ("-ips-":p)
  • kontrolliere nochmal in einer Datenbank, ob der Email-Absender das Script starten darf und das Script überhaupt existiert.
  • logge das ganze in der DB
  • starte das gemailte script
  • schreibe mir die Anzahl der neuen Mails in eine Variable

Ok, ein Teil ist in Unterprogrammen, die mit require dazugelesen werden, bei Bedarf mehr …

http://www.ip-symcon.de/forum/f18/scriptverarbeitung-eingestellt-12550/#post105509

Gruss NBA