Zum Hauptinhalt springen

MailOpen

MailOpen(int1, alpha2[, int3[, int4[, alpha5, alpha6[, alpha7, alpha8, alpha9]]]]) : handle

Ausführbar von Clients mit grafischer Oberfläche Ausführbar vom Server Ausführbar von Clients mit Programmierschnittstelle Ausführbar von der Web-Schnittstelle Ausführbar vom Druckprozessor Ausführbar von der ODBC-Schnittstelle Ausführbar vom SOA-Service

Neue E-Mail erzeugen

Details

Um eine Mail zu erstellen und zu versenden, wird zunächst ein neuer Mail-Puffer erzeugt. Die maximale Größe des Mail-Puffers beträgt 32 MB (unter Linux-Systemen 8 MB). Es können somit keine E-Mails versendet werden, die einschließlich aller Anhänge größer sind als 32 MB. Das Limit von 8 MB greift, wenn eine Funktion mit RmtCall () auf dem Server ausgeführt wird, die eine E-Mail versendet.

Als Mail-Typ (int1) können folgende Konstanten angegeben werden:

  • _MailSmtp ( 0 ): Unverschlüsselte Verbindung aufbauen (Standardport 25 , falls nicht angegeben)
  • _MailSmtpTls ( 1 ): Verschlüsselte Verbindung mit STARTTLS aufbauen, wenn unterstützt (Standardport 25 , falls nicht angegeben)
  • _MailSmtpS ( 2 ): Verschlüsselte Verbindung mit SMTPS aufbauen (Standardport 587 , falls nicht angegeben)
  • _MailCreateEML ( 3 ): E-Mail als EML-Datei speichern statt sie zu versenden

Wenn der Mailserver verschlüsselte Verbindungen unterstützt, wird mit _MailSmtpTls eine verschlüsselte Verbindung aufgebaut, ansonsten eine unverschlüsselte Verbindung. Zu beachten ist, dass der Server mindestens SSL 3.0 oder TLS 1.x unterstützt und ein gültiges Zertifikat besitzt. Es findet eine Prüfung des Gültigkeitszeitraums statt, jedoch keine Überprüfung des Ausstellers oder des Domainnamens. Somit sind auch selbst ausgestellte Zertifikate möglich. Akzeptiert ein Mailserver nur verschlüsselte Verbindungen, muss diese Konstante angegeben werden. Geschieht dies nicht, kommt beim Befehl MailClose () der Fehler 58.

info

Durch das Handshake bei STARTTLS dauert der Versand der E-Mail etwas länger. Daher wird _MailSmtpTls nur benötigt, wenn der Mailserver eine verschlüsselte Verbindung voraussetzt, oder sensible Inhalte zu einem externen Mailserver übertragen werden.

Wird _MailSmtpS angegeben, wird die Nachricht per SMPTS-Verfahren versendet. Dabei wird beim Verbindungsaufbau eine Verschlüsselung per SSL / TLS verwendet. Hier gelten die gleichen Einschränkungen bezüglich SSL / TLS und dem verwendeten Zertifikat wie bei _MailSmtpTls. Die Kommunikation findet üblicherweise auf dem 587 statt. Ältere Server verwenden unter Umständen den Port 465.

Die Optionen _MailSmtpTls und _MailSmtpS können mit einer der Sicherheitsstufen _SckTlsMax, _SckTlsHigh, _SckTlsMed oder _SckTlsLow kombiniert werden. Ist keine der Optionen angegeben, wird _SckTlsMed verwendet. Zusätzlich kann zu _SckTlsMed und _SckTlsLow _SckNoTLSv1 angegeben werden, falls der Server Probleme mit den TLS 1.x-Protokollen hat. Mit dieser Option wird nur das Protokoll SSL 3.0 unterstützt.

Zusätzlich zu den Konstanten _SckTlsMax, _SckTlsHigh, _SckTlsMed und _SckTlsLow kann mit _SckTlsSNI beim Verbindungsaufbau die Server Name Indication (SNI) eingesetzt werden. Als Name wird der Hostname (alpha2) verwendet.

Zusätzlich kann in den Optionen _MailAuthNTLM angegeben werden um eine Authentifizierung mittels NT LAN Manager (kurz NTLM) durchzuführen. Unterstützt der Mailserver dies, werden Benutzername (alpha5) und Passwort (alpha6) ignoriert und der aktuell am Computer angemeldete Domänenbenutzer verwendet.

Der Name oder die IP-Adresse des Mailservers in (alpha2) ist zwingend notwendig. (int3) muss nur dann angegeben werden, wenn der Mailserver auf einem anderen Port als auf Port 25 Mails entgegennimmt. Mit (int4) kann bestimmt werden, wie lange bei der Kommunikation mit dem Mailserver auf eine Antwort gewartet werden soll. Standardmäßig wird 60 Sekunden gewartet - ein höherer Wert sollte bei stark belasteten Mailservern benutzt werden, wenn beim Versenden ein Übertragungsfehler auftritt. Der Timeout kann zwischen 10 und 300 Sekunden (5 Minuten) liegen.

Wird als Mailtyp (int1) _MailCreateEML angegeben, wird die E-Mail nicht versendet. Statt dessen wird eine EML-Datei nach RFC 5322 erzeugt. Der Pfad und der Name der EML-Datei werden in (alpha2) angegeben. Alle weiteren Optionen werden ignoriert. Gespeicherte EML-Dateien können mit MailData () mit der Option _MailFileEML wieder als Inhalt verwendet werden.

Sofern der verwendete Mailserver eine Authentifizierung erfordert, kann in (alpha5) der Benutzername (meist in der Form name@domain.tld) und in (alpha6) das Kennwort übergeben werden. Der Mailserver muss das SMTP-Kommando "AUTH" in Verbindung mit einer der Methoden "PLAIN", "LOGIN" oder "CRAM-MD5" unterstützen. Sofern der Server mehrere Methoden unterstützt, wird bevorzugt CRAM-MD5 verwendet, gefolgt von LOGIN.

Werden die Parameter (alpha7) bis (alpha9) angegeben, wird beim MailClose () eine Authentifizierung über OAuth hergestellt. Allgemeine Informationen zu dem Authentifizierungsverfahren befinden sich im Abschnitt Microsoft Modern Authentication .

info

Innerhalb der CONZEPT 16 Programmierschnittstelle kann die Anweisung mit Verwendung der OAuth Authentifizierung nur bei Verwendung der erweiterten Programmierschnittstelle (c16_pgxe.dll) verwendet werden.

info

MailOpen () generiert lediglich den Mailpuffer, es wird noch keine Verbindung zum Mailserver aufgebaut.

Das Resultat ist der neue Deskriptor, der anschließend bei MailData () und MailClose () verwendet wird.

Ist das Resultat _ErrOutOfMemory, konnte kein Mailpuffer angelegt werden.