Berichte mit List & Label als eMail versenden

Einleitung

Um den automatischen eMail-Versand des Berichts nach dem erfolgreichen Export zu aktivieren, gehen Sie wie folgt vor.

Umsetzung

Hierzu muss die Option Export.SendAsMail mit dem Wert “1” aktiviert werden. Um die eMail vor dem Versand noch einmal zu sehen bzw. anzuzeigen, kann die Option Export.Mail.ShowDialog auf den Wert “1” gesetzt werden. Weitere einstellbare Optionen wie der Betreff, die Empfänger-Adresse(n), der Nachrichten-Text, die Signatur, das für den Versand zu verwendende Protokoll wie bspw. SMTP, XMAPI oder Simple MAPI, das Format des Nachrichten-Texts und weitere finden sich in der Programmierer-Referenz unter eMail Parameter per Programm setzen.

Bericht als Anhang versenden

Der exportierte Bericht (bspw. PDF) wird dabei dann standardmäßig immer als Anhang an die eMail angefügt. Es können dabei optional aber über Export.Mail.AttachmentList noch weitere Dateien ergänzt werden.

Bericht in eMail Nachrichten-Text einbetten

Oft ist ein Bericht so vorbereitet, dass er alle wichtigen Informationen enthält, um ihn direkt 1:1 als eMail Nachrichten-Text verwenden zu können. Das ist natürlich auch mit List & Label möglich, setzt aber ein paar wichtige Punkte voraus:

  • Als Export-Format für den Bericht muss XHTML oder HTML verwendet werden. Das Format kann entweder vom Anwender im Dialog festgelegt werden und/oder mit Hilfe der Funktion LlPrintSetOptionString eingestellt werden.

Für .NET (bspw. C#) (LlPrintSetOptionString):
LL.Core.LlPrintSetOptionString(LlPrintOptionString.Export, "XHTML");

Für API direkt (bspw. C++) (LlPrintSetOptionString):
LlPrintSetOptionString(hJob, LL_­PRNOPTSTR_EXPORT, "XHTML");

  • Das Protokoll für den eMail-Versand muss über die Option Export.Mail.Provider auf “XMAPI” oder “SMTP” gesetzt werden.

  • Außerdem muss das Format des Nachrichten-Textes auf “text/html” mit Hilfe der Option Export.Mail.SendResultAs gesetzt werden.

  • Sinnvoll ist ab Version 25 auch die Verwendung von Endlosseiten für den Export.

Tipps bei Darstellungsproblemen

Wenn der Bericht direkt in den eMail Nachrichten-Text eingebettet wird, so geschieht das immer im HTML-Format. Dabei kann es aber vorkommen, dass das erzeugte HTML unter Umständen nicht in jedem verwendeten eMail-Client wie bspw. Microsoft Outlook, Mozilla Thunderbird oder diverse Web-Mailer wie Gmail etc. einwandfrei dargestellt werden kann, da der HTML-Code oft sehr unterschiedlich interpretiert wird. Um die Darstellung des HTML-Codes im eMail-Body ein wenig zu beeinflussen, können die folgenden Tipps hilfreich sein:

  • Bei der Verwendung des modernen XHTML-Formats als Export-Format für den Bericht, bei dem auch CSS zum Einsatz kommt, kann die Option XHTML.UseAdvancedCSS mit dem Wert “0” deaktiviert werden.

  • Es kann auch das deutlich vereinfachte HTML-Format als Export-Format für den Bericht verwendet werden - siehe LlPrintSetOptionString:

Für .NET (bspw. C#) (LlPrintSetOptionString):
LL.Core.LlPrintSetOptionString(LlPrintOptionString.Export, "HTML");
Wichtig: die Druckoptionen müssen im DefinePrintOptions Ereignis gesetzt werden.

Für API direkt (bspw. C++) (LlPrintSetOptionString):
LlPrintSetOptionString(hJob, LL_­PRNOPTSTR_EXPORT, "HTML");

Hinweis für List & Label 26 und höher

Ab der Version 26 steht das vereinfachte HTML-Format standardmäßig nicht mehr als Export-Format zur Verfügung und muss gesondert erst aktiviert werden, was mit Hilfe von LlSetOptionString umgesetzt werden kann.

Für .NET (bspw. C#) (LlSetOptionString):

var availableFormats = LL.Core.LlGetOptionString(LlOptionString.Exports_Available);
LL.Core.LlSetOptionString(LlOptionString.Exports_Allowed, availableFormats + ";HTML");

Für API direkt (bspw. C++) (LlSetOptionString):

TCHAR aczAvailableFormats[256] = { 0 };
UINT nBuffSize = sizeof(aczAllowedFormats)/sizeof(TCHAR);
LlGetOptionString(hJob, LL_OPTIONSTR_EXPORTS_AVAILABLE, aczAvailableFormats, nBuffSize);
wcscat_s(aczAllowedFormats, L";HTML");
LlSetOptionString(hJob, LL_­OPTIONSTR_­EXPORTS_­ALLOWED, aczAvailableFormats, nBuffSize+5);

Weitere Links zum eMail-Versand mit List & Label

eMail-Versand mit .NET
Exportdateien per eMail verschicken