Dies ist die alte 4D Dokumentations-Website. Die neue und aktualisierte Dokumentation finden Sie unter developer.4d.com |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v18.4
SMTP_transporter.send()
|
SMTP_transporter.send() ( mail ) -> Funktionsergebnis | ||||||||
Parameter | Typ | Beschreibung | ||||||
Objekt |
![]() |
E-Mail zum Senden | ||||||
Funktionsergebnis | Objekt |
![]() |
SMTP Status | |||||
Die Methode SMTP_transporter.send() sendet das Objekt mail an den SMTP Server, der im Objekt transporter definiert ist, und gibt ein Objekt Status zurück.
Hinweis: Das Objekt transporter muss vorher über den Befehl SMTP New transporter angelegt werden.
Die Methode erstellt die SMTP Verbindung, wenn sie noch nicht live ist. Ist die Eigenschaft keepAlive des Objekts transporter falsch, wird die SMTP Verbindung nach Ausführen von SMTP_transporter.send() automatisch geschlossen, sonst bleibt sie bis zum Zerstören des Objekts transporter bestehen. Weitere Informationen dazu finden Sie unter dem Befehl SMTP New transporter.
In mail übergeben Sie ein gültiges E-Mail Objekt zum Senden. Die Eigenschaften für Ursprung (von wo das E-Mail kommt) und Ziel (ein oder mehrere Empfänger) müssen enthalten sein, die übrigen Eigenschaften sind optional. Es gibt folgende Eigenschaften:
Eigenschaft | Typ | Beschreibung | |
from | Text | Objekt | Collection(*) | Ausgangsadresse(n)(**) | |
cc | Text | Objekt | Collection(*) | Carbon Copy (CC). Zusätzliche(r) E-Mail Empfänger | |
bcc | Text | Objekt | Collection(*) | Blind Carbon Copy (BCC). Ausgeblendete(r) E-Mail Empfänger | |
to | Text | Objekt | Collection(*) | Vorrangige(r) Empfänger | |
sender | Text | Objekt | Collection(*) | E-Mail Ursprungsadresse(n)(**) | |
replyTo | Text | Objekt | Collection(*) | Addresse(n) für Antworten | |
subject | Text | Betreff | |
textBody | Text | Darstellung der E-Mail Meldung als Volltext (Standard Zeichensatz ist UTF-8)(***) | |
htmlBody | Text | Darstellung der E-Mail Meldung als HTML (Standard Zeichensatz ist UTF-8)(***) | |
sendAt | Text | E-Mail Zeitstempel (UTCDate) | |
attachments | Collection | Collection der Anhang Objekte, síehe MAIL New attachment | |
messageId | Text | Message Identifier Header ("message-id"). Normalerweise "lettersOrNumbers@domainname", z.B. "abcdef.123456@4d.com". Diese einmalige ID wird insbesondere in Foren oder öffentlichen Mailing Listen verwendet. Im allgemeinen fügen Mail Server diesen Header automatisch den Meldungen beim Senden hinzu. | |
inReplyTo | Text | Message Identifier(s) der Originalmeldung(en), für welche die aktuelle Meldung eine Antwort ist (****). | |
references | Collection mit Text | Collection aller Message-Ids von Meldungen in der vorangegangenen Antwortkette (****). | |
keywords | Objekt | "keywords" Header. Enthält einen Satz Schlüsselwörter als Objekt. Dabei ist jeder Eigenschaftsname ein Schlüsselwort und jeder Wert ist wahr. Siehe RFC#4021. | |
<keyword> | Boolean | Schlüsselwort zum Setzen (Wert muss wahr sein). Beispiel: $mail.keywords["$flagged"]:=True | |
comments | Text | Kopfteil zusätzliche Kommentare. Kommentare erscheinen nur im Kopfteilbereich der Meldung (der Hauptteil der Meldung bleibt davon unberührt) (****). | |
headers | Collection mit Objekten | Collection der EmailHeader Objekte, in der Reihenfolge, wie sie in der Meldung erscheinen. So können Benutzer erweiterte (registrierte) oder benutzerdefinierte (nicht registrierte, die mit "X" beginnen) Kopfteile hinzufügen. Hinweis: Definiert eine Objekteigenschaft EmailHeader ein Kopfteil wie "von" oder "cc", der bereits als Eigenschaft auf Mail-Ebene gesetzt ist, wird diese Eigenschaft ignoriert. | |
[ ].name | Text | (zwingend) Header Feldname wie in RFC#5322 definiert. Ist er Null oder undefiniert, wird er nicht im MIME Header hinzugefügt. | |
[ ].value | Text | Header Feldname wie in RFC#5322 definiert. |
Hinweis: Im Objekt mail dürfen keine Header Feldnamen stehen, die mit "Content-" beginnen.
Wird das Objekt mail aus einem MIME Dokument erstellt, z.B. generiert über den Befehl MAIL Convert from MIME, gibt es zusätzlich nachfolgende Eigenschaften. In diesem Fall müssen die Eigenschaften bodyStructure und bodyValues zusammen übergeben werden und die Verwendung von htmlBody und textBody wird nicht empfohlen.
bodyStructure | Objekt | (optional) Ganze MIME Struktur des Hauptteils der Meldung (Objekt EmailBodyPart) | |
partID | Text | Identifiziert den Teil allein innerhalb der E-Mail | |
type | Text | (zwingend) Wert des Content-Type Kopfteilfeldes des Teils | |
charset | Text | Wert des Parameters charset vom Content-Type Kopfteilfeld | |
encoding | Text | gilt isEncodingProblem=wahr, wird der Wert von Content-Transfer-Encoding hinzugefügt (standardmäßig undefiniert) | |
disposition | Text | Wert des Content-Disposition Kopfteilfeldes des Teils | |
language | Collection von Texten | Liste der Programmiersprache Tags, wie in RFC3282 definiert, im Content-Language Kopfteilfeld des Teils, falls vorhanden. | |
location | Text | URI, wie in RFC2557 definiert, im Content-Location Kopfteilfeld des Teils, falls vorhanden. | |
subParts | Collection von Objekten | Hauptteile jedes Unterbereichs (child) (Collection der Objekte EmailBodyPart) | |
headers | Collection von Objekten | Liste aller Kopfteilfelder im Teil, in der Reihenfolge wie sie in der Meldung erscheinen (Collection der Objekte EmailHeader siehe Eigenschaft header) | |
bodyValues | Objekt | (optional) Objekt EmailBodyValue mit einem Objekt für jede partID von bodyStructure | |
<partID>.value | Text | Wert des Hauptteils | |
<partID>.isEncodingProblem | Boolean | Wahr, wenn beim Decodieren des Zeichensatzes (charset) schlecht geformte Abschnitte gefunden werden oder wenn Zeichensatz bzw. Content Transfer-Encoding unbekannt sind. Standardmäßig Falsch |
Beispiel zu den Objekten bodyStructure und bodyValues:
"bodyStructure": {
"type": "multipart/mixed",
"subParts": [
{
"partId": "p0001",
"type": "text/plain"
},
{
"partId": "p0002",
"type": "text/html"
}
]
},
"bodyValues": {
"p0001": {
"value": "I have the most brilliant plan. Let me tell you all about it."
},
"p0002": {
"value": "<!DOCTYPE html><html><head><title></title><style type=\"text/css\">div{font-size:16px}</style></head><body><div>I have the most brilliant plan. Let me tell you all about it.</div></body></html>"
}
}
(*) Alle Eigenschaften mit E-Mail Adressen (from, cc, bcc, to, sender, replyTo) akzeptieren einen Wert vom Typ Text, Objekt oder Collection.
Eigenschaften | Typ | Beschreibung |
name | Text | Anzeigename (kann null sein) |
Text | E-Mail Adresse |
(**) Jede versendete E-Mail hat die Adressen sender und from:
(***) Sind textBody und htmlBody gefüllt, wird der Inhaltstyp MIME multipart/alternative verwendet. Der E-Mail Client sollte dann den Teil multipart/alternative erkennen und je nach Bedarf den Text- oder den html-Teil anzeigen.
(****) Spezifische Anforderungen zur Formatierung finden Sie unter RFC#5322.
Hinweis: 4D verwendet die JMAP specification zum Formatieren des Objekts mail.
Zurückgegebenes Objekt
SMTP_transporter.send() gibt ein Objekt zurück, das den SMTP Status der Operation beschreibt. Es kann folgende Eigenschaften enthalten:
Eigenschaft | Typ | Beschreibung |
success | Boolean | wahr bei erfolgreichem Sendevorgang, sonst falsch |
status | Zahl | vom SMTP Server zurückgegebener Statuscode |
statusText | Text | vom SMTP Server zurückgegebene Statusmeldung |
Hinweis: Für weitere Informationen zum SMTP Status klicken Sie hier.
Fehlerverwaltung
Bei einem Problem, das nicht mit der SMTP Bearbeitung zusammenhängt (z.B. zwingende Eigenschaft fehlt in mail, generiert 4D einen Fehler, den Sie mit einer über ON ERR CALL installierten Methode abfangen können. Mit dem Befehl GET LAST ERROR STACK erhalten Sie Information über den Fehler. Das zurückgegebene Objekt Status enthält dann folgende Werte:
Dieser Code erstellt und sendet ein E-Mail:
C_OBJECT($server)
$server:=New object
$server.host:="mail.smtp.host" // Zwingend
$server.port:=25 // Optional, Standardwert: 587
$transporter:=SMTP New transporter($server)
C_COLLECTION($headers) //benutzerdefinierte Header hinzufügen
$headers:=New collection
$headers.push(New object("name";"X-MAILER";"value";"MySoftware"))
$headers.push(New object("name";"X-4D-VERSION";"value";"17Rx"))
C_OBJECT($email)
$email:=New object
$email.subject:="my first mail"
$email.to:="test.mail@4d.com"
$email.from:="test.noreply@4d.com"
$email.textBody:="this is a test"
$email.attachments:=New collection(MAIL New attachment("schedule.xlsx"))
$email.headers:=$headers
$email.keywords:=New object("technical";True;"advanced";True;"useless";False)
$status:=$transporter.send($email)
If(Not($status.success))
ALERT("An error occurred sending the mail: "+$status.statusText)
End if
MAIL Convert from MIME
MAIL Convert to MIME
MAIL New attachment
SMTP New transporter
SMTP_transporter.checkConnection( )
Produkt: 4D
Thema: Mail
Erstellt: 4D v17 R4
Geändert: 4D v17 R5
4D Programmiersprache ( 4D v18)
4D Programmiersprache ( 4D v18.4)
4D Programmiersprache ( 4D v18.6)