E-Mails per Script direkt aus Vertec versenden
Standard
|Expert
CLOUD ABO
|ON-PREMISES
Leistung & CRM
Budget & Teilprojekt
Fremdkosten
Ressourcenplanung
Business Intelligence
Ab Vertec 6.4.0.20 steht dafür das Plug-in: E-Mail-Versand Dokumente zur Verfügung, welches auch cloudfähig ist.
Mittels Script ist es möglich, E-Mails automatisch zu versenden. Sei das über ein registriertes Script, welches manuell ausgelöst wird, via Aufgabe oder via Eventscript.
Dies geschieht normalerweise via Zugriff über COM auf den lokalen E-Mail Client, z.B. Microsoft Outlook, wie in nachfolgendem VB Script Beispiel:
Set myMail = CreateObject("CDO.Message") myMail.To = Teamleader.Member("briefEmail") myMail.Subject = "Teamauswertung: " + Teamleader.Member("kuerzel") + ", " + CStr(VonDatum) + " bis " + CStr(BisDatum) myMail.TextBody = MailText myMail.AddAttachment FileName myMail.Send Set myMail = Nothing
Um diese Funktionalität nutzen zu können, muss ein Standard-E-Mail-Programm auf Ihrem Computer definiert sein.
Das funktioniert aus der Desktop App einwandfrei.
Bei der Cloud App läuft das Script auf dem Server und kann als COM Client MS Outlook zwar aufrufen, es gibt dabei jedoch Unbekannte, wie: Darf die VertecSession.exe überhaupt etwas interaktives aufrufen (viele Services dürfen das nicht)?, oder: Welches Profil wird im Outlook verwendet? - Outlook wird unter den Credentials aufgestartet, mit dem der Cloud Server läuft. In der Web App läuft ein solches Script gar nicht.
Um diese Probleme zu umgehen, können E-Mails auch direkt via SMTP versendet werden, unter Verwendung des smtplib Moduls von Python. Hier nachfolgend ein Python Beispiel mit Googlemail SMTP:
# coding: windows-1252 import smtplib #Absender Details mail_user = 'USER' mail_password = 'PASSWORD' aktivitaet = argobject zustaendiger = aktivitaet.zustaendig #Email Inhalt sender = mail_user to = zustaendiger.eval("briefEmail") subject = "Neue Aktivität für: " + zustaendiger.kuerzel body = "Projekt: %s \n Termin: %s \n Titel: %s \n Text: %s" % (aktivitaet.projekt, aktivitaet.termin, aktivitaet.titel, aktivitaet.text) email_text = ("From: %s\r\nTo: %s\r\nSubject: %s\r\n\r\n" % (sender, ", ".join(to), subject)) + body #Mailserver Details try: server = smtplib.SMTP_SSL('smtp.gmail.com', 465) server.ehlo() server.login(mail_user, mail_password) server.sendmail(sender, to, email_text) server.close() print 'Versand erfolgreich!' except: print 'Versand nicht möglich!'