4D v18MAIL New attachment |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v18
MAIL New attachment
|
MAIL New attachment ( value {; name {; cid {; type {; disposition}}}} ) -> Funktionsergebnis | ||||||||
Parameter | Typ | Beschreibung | ||||||
value | Text, BLOB |
![]() |
Pfad der Datei als Anhang (Text) oder Blob mit dem Anhang (BLOB) |
|||||
name | Text |
![]() |
Name + Endung, welche der Mail Client für den Anhang verwendet | |||||
cid | Text |
![]() |
ID des Anhangs (nur HTML Meldungen) oder "" wenn keine cid erforderlich ist. | |||||
type | Text |
![]() |
Wert des Header Content-Typ | |||||
disposition | Text |
![]() |
Wert des Header content-disposition: "inline" oder "attachment" | |||||
Funktionsergebnis | Objekt |
![]() |
Anhang Objekt | |||||
Mit dem Befehl MAIL New attachment können Sie ein Objekt Anhang erstellen, das sie an ein Objekt mail anfügen können (siehe SMTP_transporter.send()).
In value übergeben Sie den Inhalt des Anhangs. Sie können folgendes übergeben:
Im optionalen Parameter name können Sie Name und Endung angeben, die der Mail Client für den Anhang verwenden soll. Wird name weggelassen und ist:
Im optionalen Parameter cid können Sie eine interne ID für den Anhang übergeben. Das ist der Wert des Header content-id, er wird nur in HTML Meldungen verwendet. cid koppelt den Anhang mit einer Referenz, die über ein HTML Tag wie z.B. <img src="cid:ID"> im Hauptteil der Meldung definiert wird. In diesem Fall soll der Inhalt des Anhangs, z.B. ein Bild, innerhalb der Meldung im Mail Client angezeigt werden. Das Endergebnis kann je nach dem Mail Client unterschiedlich sein. Wollen Sie diesen Parameter nicht verwenden, können Sie in cid einen leeren String übergeben.
Im optionalen Parameter type können Sie explizit den Content-Typ der Anhangdatei übergeben: z.B. ein String, der einen MIME Typ ("video/mpeg") definiert. Dieser Wert des Content-Typs wird für den Anhang gesetzt, unabhängig von seiner Endung. Weitere Informationen dazu finden Sie auf der Seite MIME in Wikipedia.
Standardmäßig, also wenn dieser Parameter weggelassen wird oder einen leeren String enthält, basiert der Content-Typ der Anhangdatei auf deren Endung. Für die wichtigsten MIME Typen gelten folgende Regeln:
Endung | Content.Typ |
jpg, jpeg | image/jpeg |
png | image/png |
gif | image/gif |
application/pdf | |
doc | application/msword |
xls | application/vnd.ms-excel |
ppt | application/vnd.ms-powerpoint |
zip | application/zip |
gz | application/gzip |
json | application/json |
js | application/javascript |
ps | application/postscript |
xml | application/xml |
htm, html | text/html |
mp3 | audio/mpeg |
other | application/octet-stream |
Im optionalen Parameter disposition können Sie den Header content-disposition des Anhangs angeben. Sie können eine der folgenden Konstanten unter dem Thema Mail übergeben:
Konstante | Wert | Kommentar |
mail disposition attachment | attachment | Setzt den Wert des Content-disposition Header auf "attachment", d.h. die Datei als Anhang muss als Link in der Meldung erscheinen. |
mail disposition inline | inline | Setzt den Wert des Content-disposition Header auf "inline", d.h. der Anhang muss im Inhalt der Meldung gerendert werden. Das Rendern richtet sich nach dem Mail Client. |
Ohne den Parameter disposition gilt standardmäßig:
MAIL New attachment gibt ein neues Objekt Anhang zurück, das Sie der Collection attachment des Objekts mail, verwaltet über die Methode SMTP New transporter, hinzufügen können. Das Objekt enthält folgende read-only Eigenschaften und Methoden:
Eigenschaft | Wert | Beschreibung |
attachment.path | Text | Kompletter Pfad des Anhangs (wenn vorhanden) |
attachment.name | Text | Name und Endung des Anhangs. Ist standardmäßig der Name der Datei. |
attachment.disposition | Text | Wert des Header Content-Disposition: "inline" oder "attachment". |
attachment.type | Text | Content-Typ der Anhangdatei. Ist dieser Typ nicht explizit im Befehl MAIL New attachment übergeben, basiert der Content-Typ auf der Endung der Datei. |
attachment.cid | Text | ID des Anhangs (nur in HTML Meldungen). Fehlt diese Eigenschaft, wird die Datei als einfacher Anhang verwaltet (link) |
Methode | Beschreibung |
attachment.getContent( ) | Gibt Inhalt des Anhangs zurück |
Sie wollen ein E-Mail senden mit einer vom Benutzer gewählten Datei als Anhang und einem Bild, das im HTML Hauptteil eingebunden ist:
$doc:=Select document("";"*";"Bitte wählen Sie die Datei für den Anhang";0)
If(OK=1) //Wurde ein Dokument ausgewählt
C_OBJECT($email;$server;$transporter)
$server:=New object
$server.host:="smtp.mail.com"
$server.user:="test_user@mail.com"
$server.password:="p@ssw@rd"
$transporter:=SMTP New transporter($server)
$email:=New object
$email.from:="test_user@mail.com"
$email.to:="test_user@mail.com"
$email.subject:="Dies ist eine Testmeldung mit Anhängen"
//Link zum Download der Datei hinzufügen
$email.attachments:=New collection(MAIL New attachment(Document))
//eingebundenes Bild einfügen (ein cid verwenden)
$email.attachments[1]:=MAIL New attachment("c:\\Pictures\\4D.jpg";"";"4D")
$email.htmlBody:="<html>"+\
"<body>Hello World!"+\
"<img src='cid:4D' >"+\
"</body>"+\
"</head>"+\
"</html>"
$transporter.send($email) //Mail senden
End if
Sie wollen eine E-Mail mit einem 4D Write Pro Bereich als Anhang senden:
C_BLOB($blob)
WP EXPORT VARIABLE(WPArea;$blob;wk docx)
C_OBJECT($email;$server;$transporter)
$server:=New object
$server.host:="smtp.mail.com"
$server.user:="user@mail.com"
$server.password:="p@ssw@rd"
$transporter:=SMTP New transporter($server)
$email:=New object
$email.from:="user@mail.com"
$email.to:="customer@mail.com"
$email.subject:="Neuer Jahresbericht"
$email.textBody:="Anbei erhalten Sie unseren aktuellen Jahresbericht."
$email.attachments:=New collection(MAIL New attachment($blob;"Annual report.docx"))
$transporter.send($email)
attachment.cid
attachment.disposition
attachment.getContent( )
attachment.name
attachment.path
attachment.type
SMTP_transporter.send()
Produkt: 4D
Thema: Mail
Nummer:
1644
Erstellt: 4D v17 R4
4D Programmiersprache ( 4D v18)