E-Mail ab Vertec automatisch versenden

E-Mails per Script direkt aus Vertec versenden

Standard

|

Expert

CLOUD ABO

|

ON-PREMISES

Leistung & CRM

Budget & Teilprojekt

Fremdkosten

Ressourcenplanung

Business Intelligence

Erstellt: 03.02.2017
Aktualisiert: 11.07.2019 | SMTP Script geändert bei email_text

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:

E-Mail versenden via lokalem Standard-E-Mail-Programm

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:

E-Mail versenden via 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!'
Bitte wählen Sie Ihren Standort