Ankommende E-Mail mit dem entsprechenden Prozess verknüpfen

rimacon omniSuite ermöglicht die Überwachung eines oder mehrerer E-Mail-Konten. Bei Eingang einer neuen E-Mail wird das vorgegebene C#-Skript ausgeführt.

Aufgabe

Überwachen Sie das E-Mail-Konto X und wenn eine ankommende E-Mail den Betreff Process.Process_Name in {}-Klammern enthält, verknüpfen Sie die E-Mail mit dem entsprechenden Prozess und schicken eine Info-Mail an den Prozessverantwortlichen.

Lösung

Datenbank-Struktur vorbereiten

EMAILrimacon-E-Mail-Tabelle
EMAIL.VCOL_ProcessFK auf Prozess
Processrimacon-Prozess-Tabelle
Process.VCOL_Verantwortlich_EmailE-Mail-Adresse des Verantwortlichen (Zeichenfolge 100)

Testdaten

Geben Sie die folgenden Testdaten ein: Prozessname "RFC-0020", E-Mail-Adresse des Verantwortlichen "test@meinefirma.de". Schicken Sie eine E-Mail an das Konto X mit Betreff {RFC-0020} und beliebigem Inhalt.

E-Mail-Eingang konfigurieren

NameVerbinde E-Mail mit Prozess
Aktiviert*ja
periodische Abfrage20
E-Mail-KontenKonfigurieren Sie das Konto X
Programmierung: <entry point>

string errmsg = "";
// alle Prozesse
System.Collections.Hashtable p = db.ExecuteIntoHashtable("select Process_ID, Process_Name, VCOL_Verantwortlich_Ef from Process", out errmsg);
for (int i=0; i<p.Count; i++)
{
	System.Collections.Hashtable row = (System.Collections.Hashtable)p[i];
	string id = row["Process_ID"].ToString();
	string name = row["Process_Name"].ToString();
	string email = row["VCOL_Verantwortlich_Email"].ToString();
	if (mail.Subject.IndexOf("{" + name + "}") >= 0) // test E-Mail-Begriff
	{
		// join EMAIL and Process
		db.ExecuteNonQuery("update EMAIL set VCOL_Process=" + id + " where EMAIL_ID=" + mail.EMAIL_ID, out errmsg);
		// send mail
		if (email!="") db.ExecuteNonQuery("exec sp_cmdb_SendOneEmail 1,null,null,'','','" + email.Replace("'","''") + "','','','new mail bzg. Process " +  name + "','you have a new mail bzg. des Processes'", out errmsg);

		return;
	}
}

Testen

Nach der Kompilierung sollte die E-Mail innerhalb von 30 Sekunden mit dem Prozess verknüpft und eine Antwort an test@meinefirma.de gesendet werden.
Hinweis: Die Antwort könnte als Spam betrachtet werden, prüfen Sie daher auch das Spam-Verzeichnis.