Zum Hauptinhalt springen

MailClose

obj -> MailClose(int1[, var alpha2]) : int

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

E-Mail versenden

Details

Mit diesem Befehl wird die aufbereitete Mail (obj) entweder abgesendet (int1 = _SmtpSendNow) oder verworfen (int1 = _SmtpDiscard).

Wird beim Aufruf im optionalen Argument (alpha2) eine Variable zusammen mit der Option _SmtpSendNow verwendet, wird bei Auftreten eines Fehlers die zuletzt erhaltene Antwort des Mail-Servers zurückgegeben. Der zurückgegebene Text ist leer, wenn entweder kein Fehler auftrat oder der Fehler nicht auf eine Antwort des Mail-Servers zurückgeht (z. B. Socket-Fehler).

Das Resultat informiert über den Erfolg des Mailversands:

  • Fehlerwert: Bedeutung
  • 0 ( _ErrOk ): ok, kein Fehler - Mail wurde versendet
  • 8: kein Empfänger bekannt
  • 9: Absender fehlt
  • 11: Keine Verbindung zum Mailserver
  • 12: Verbindungsabbruch beim Übertragen
  • 19: interner Fehler
  • ab 20: SMTP-Fehler:
  • 20 - 29: Fehler beim Verbindungsaufbau
  • 23: Service nicht verfügbar
  • 27: Sonstiger Fehler
  • 30 - 39: Fehler bei der Identifizierung
  • 31: Syntaxfehler
  • 32: Befehl oder Parameter unbekannt
  • 33: Service nicht verfügbar
  • 37: Sonstiger Fehler
  • 38: Fehler bei der Authentifizierung
  • 40 - 49: Fehler bei einer Empfangsadresse
  • 41: Syntaxfehler
  • 42: Befehl oder Parameter unbekannt
  • 43: Service nicht verfügbar
  • 44: Zuviele Daten
  • 45: Interner Verarbeitungsfehler
  • 46: Empfänger unzulässig
  • 47: Sonstiger Fehler
  • 50 - 59: Fehler bei einer Absenderadresse
  • 51: Syntaxfehler
  • 53: Service nicht verfügbar
  • 54: Zuviele Daten
  • 55: Interner Verarbeitungsfehler
  • 57: Sonstiger Fehler
  • 58: Fehler bei der Authentifizierung - Mailserver erzwingt Verschlüsselung
  • 60 - 69: Fehler bei der Datenübergabe
  • 61: Syntaxfehler
  • 63: Service nicht verfügbar
  • 64: Zuviele Daten
  • 65: Interner Verarbeitungsfehler
  • 66: Anhänge zu groß oder Absenderadresse aus fremder Domain ohne Relay
  • 67: Sonstiger Fehler
  • 70 - 79: Fehler beim Verbindungsabbau
  • 71: Syntaxfehler
  • 77: Sonstiger Fehler

Wenn eine EML-Datei geschrieben werden soll (siehe _MailCreateEML), können zusätzlich Fehler für externe Dateioperationen auftreten.

Sollte die Verbindung zum Mailserver fehlschlagen, kann mit einem Telnet-Client überprüft werden, ob ein generelles Problem vorliegt:

telnet <Mailserveradresse> <Port>
EHLO
MAIL FROM:<Absenderadresse>
RCPT TO:<Empfängeradresse>
DATA
Subject: Testnachricht
(Leerzeile, erneut Enter drücken)
Das ist ein Test.
(Leerzeile, erneut Enter drücken)
.
QUIT

Unterstützt der Mailserver kein ESMTP, muss statt EHLO HELO angegeben werden.

Wurden beim Öffnen des Mail-Puffers mit MailOpen () die Angaben für die Authentifizierung über OAuth angegeben, wird eine Anmeldung über dieses Protokoll versucht. Dabei wird zunächst geprüft, ob ein entsprechendes Token im Token Cache vorhanden ist. Die Anmeldung erfolgt dann mit dem Token, der VerzeichnisId und der AnwendungsId.

Ist kein passender Token vorhanden oder wird dieser abgewiesen, muss eine Anmeldung beim Authentifizierungsdienst erfolgen. Dazu wird ein Fenster angezeigt, das die URL und den Benutzer-Code zur Anmeldung enthält. Der Benutzer-Code kann in die Zwischenablage kopiert werden. Nach Bestätigung des Fensters, wird der Standard-Browser mit der zuvor angezeigten URL aufgerufen. Auf der Seite erfolgt die Anmeldung durch den Benutzer. Der Benutzercode kann über die Zwischenablage eingefügt werden.

Wird die Anweisung über einen SOA-Task ausgeführt, wird der Protokolleintrag "OAuth DeviceFlow ..." in die Log-Datei des SOA-Tasks geschrieben. Durch einen Doppelklick auf den Protokolleintrag kann die Anmeldung manuell gestartet werden.

Die Authentifizierung hat ein Timeout von drei Minuten. Erfolgt die Authentifizierung innerhalb dieser Zeitspanne kehrt MailClose() mit dem Resultat _ErrOk (0) zurück, sofern die Authentifizierung erfolgreich war und die Mail versendet wurde. Wird die Zeitspanne überschritten, kehrt die Anweisung mit dem Wert _ErrTimeout (-2) zurück.

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.

Mögliche Laufzeitfehler: