4D v18MAIL New attachment |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v18
MAIL New attachment
|
MAIL New attachment ( valeur {; nom {; cid {; type {; disposition}}}} ) -> Résultat | ||||||||
Paramètre | Type | Description | ||||||
valeur | Texte, BLOB |
![]() |
Chemin de la pièce jointe (texte), ou Blob contenant la pièce jointe (BLOB) | |||||
nom | Texte |
![]() |
Nom + extension utilisés par le client de messagerie pour désigner la pièce jointe | |||||
cid | Texte |
![]() |
ID de la pièce jointe (messages HTML uniquement) ou " " si aucun cid n'est requis | |||||
type | Texte |
![]() |
Valeur de l'en-tête content-type | |||||
disposition | Texte |
![]() |
Valeur de l'en-tête content-disposition : "inline" ou "attachment" | |||||
Résultat | Objet |
![]() |
Objet pièce jointe | |||||
La commande MAIL New attachment vous permet de créer un objet pièce jointe que vous pouvez ajouter à un objet mail (voirSMTP_transporteur.send( )).
Dans valeur, passez le contenu de la pièce jointe. Vous pouvez passer :
Le paramètre optionnel nom vous permet de passer le nom et l'extension à utiliser par le client de messagerie pour désigner la pièce jointe. Si nom est omis et que :
Le paramètre optionnel cid vous permet de passer un ID interne pour la pièce jointe. Cet ID correspond à la valeur de l'en-tête Content-Id et ne sera utilisé que dans les messages HTML. Le paramètre cid associe la pièce jointe à une référence définie dans le corps du message à l'aide d'une balise HTML telle que <img src="cid:ID">. Cela signifie que le contenu de la pièce jointe (ex: une image) doit s'afficher dans le message sur le client de messagerie. Le résultat final peut varier en fonction du client de messagerie. Vous pouvez passer une chaine vide dans cid si vous ne souhaitez pas utiliser ce paramètre.
Vous pouvez utiliser le paramètre optionnel type pour fixer explicitement le content-type du fichier joint. Par exemple, vous pouvez passer une chaine définissant un type MIME ("video/mpeg"). Cette valeur content-type sera définie pour la pièce jointe, indépendamment de son extension. Pour plus d'informations sur les types MIME, veuillez consulter la page type MIME sur Wikipedia.
Par défaut, si ce paramètre est omis ou s'il contient une chaine vide, le content-type du fichier joint est basé sur son extension. Les règles suivantes s'appliquent aux principaux types MIME :
Extension | Content Type |
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 | texte/html |
mp3 | audio/mpeg |
other | application/octet-stream |
Le paramètre optionnel disposition vous permet de passer l'en-tête content-disposition de la pièce jointe. Vous pouvez passer l'une des constantes suivantes du thème "Mail" :
Constante | Valeur | Comment |
mail disposition attachment | attachment | Fixe la valeur de l'en-tête Content-disposition à "attachment", ce qui signifie que la pièce jointe doit être fournie sous forme de lien dans le message. |
mail disposition inline | inline | Fixe la valeur de l'en-tête Content-disposition à "inline", ce qui signifie que la pièce jointe doit être insérée dans le message, à l'emplacement du "cid". Le rendu dépend du client de messagerie. |
Par défaut, si le paramètre disposition est omis :
MAIL New attachment retourne un nouvel objet pièce jointe que vous pouvez ajouter à la collection attachment de l'objet mail géré par la méthode transporteur.send( ). L'objet contient les propriétés et méthodes en lecture seule suivantes :
Propriété | Type | Description |
piecejointe.path | Texte | Chemin complet de la pièce jointe (le cas échéant) |
piecejointe.name | Texte | Nom et extension de la pièce jointe. Par défaut, le nom du fichier. |
piecejointe.disposition | Texte | Valeur de l'en-tête Content-Disposition : "inline" ou "attachment". |
piecejointe.type | Texte | Content type du fichier joint. Si ce type n'est pas explicitement passé à la commande MAIL New attachment, le content-type est basé sur l'extension de son fichier. |
piecejointe.cid | Texte | ID de la pièce jointe (utilisé uniquement dans les messages HTML). Si cette propriété est omise, le fichier est géré comme une simple pièce jointe (lien) |
Méthode | Description |
piecejointe.getContent( ) | Retourne le contenu de la pièce jointe |
Vous souhaitez envoyer un e-mail et y joindre un fichier sélectionné par l'utilisateur ainsi qu'une image intégrée dans le HTML :
$doc:=Select document("";"*";"Veuillez sélectionner le fichier à joindre";0)
If(OK=1) //Si un document a été sélectionné
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:="Ceci est un message de test contenant des pièces jointes"
//ajoutez un lien pour télécharger le fichier
$email.attachments:=New collection(MAIL New attachment(Document))
//insérez une image inline (utilisez un cid)
$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) //envoyez le mail
End if
Vous souhaitez envoyer un e-mail avec une zone 4D Write Pro en pièce jointe :
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:="Nouveau rapport annuel"
$email.textBody:="Veuillez trouver ci-joint notre dernier rapport annuel."
$email.attachments:=New collection(MAIL New attachment($blob;"Rapport annuel.docx"))
$transporter.send($email)
piecejointe.cid
piecejointe.disposition
piecejointe.getContent( )
piecejointe.name
piecejointe.path
piecejointe.type
SMTP_transporteur.send( )
Produit : 4D
Thème : Mail
Numéro :
1644
Créé : 4D v17 R4
4D - Langage ( 4D v18)