4D v18

MAIL New attachment

Accueil

 
4D v18
MAIL New attachment

MAIL New attachment 


 

MAIL New attachment ( valeur {; nom {; cid {; type {; disposition}}}} ) -> Résultat 
Paramètre Type   Description
valeur  Texte, BLOB in Chemin de la pièce jointe (texte), ou Blob contenant la pièce jointe (BLOB)
nom  Texte in Nom + extension utilisés par le client de messagerie pour désigner la pièce jointe
cid  Texte in ID de la pièce jointe (messages HTML uniquement) ou " " si aucun cid n'est requis
type  Texte in Valeur de l'en-tête content-type
disposition  Texte in Valeur de l'en-tête content-disposition : "inline" ou "attachment"
Résultat  Objet in 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 :

  • soit une valeur texte qui contient le chemin du fichier joint, exprimé avec la syntaxe du système. Vous pouvez passer un nom de chemin complet or un simple nom de fichier (auquel cas 4D recherchera le fichier dans le même répertoire que le fichier de structure de la base).
  • soit une valeur BLOB qui contient la pièce jointe en elle-même.

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 :

  • valeur est un chemin du fichier, le nom et l'extension du fichier sont utilisés,
  • valeur est un BLOB, un nom aléatoire sans extension est automatiquement généré.

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 :

ExtensionContent Type
jpg, jpegimage/jpeg
pngimage/png
gifimage/gif
pdfapplication/pdf
docapplication/msword
xlsapplication/vnd.ms-excel
pptapplication/vnd.ms-powerpoint
zipapplication/zip
gzapplication/gzip
jsonapplication/json
jsapplication/javascript
psapplication/postscript
xmlapplication/xml
htm, htmltexte/html
mp3audio/mpeg
otherapplication/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 :

  • si le paramètre cid est utilisé, l'en-tête Content-disposition est défini sur "inline",
  • si le paramètre cid est vide ou n'est pas passé, l'en-tête Content-disposition est défini sur "attachment".

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éTypeDescription
piecejointe.pathTexteChemin complet de la pièce jointe (le cas échéant)
piecejointe.nameTexteNom et extension de la pièce jointe. Par défaut, le nom du fichier.
piecejointe.dispositionTexteValeur de l'en-tête Content-Disposition : "inline" ou "attachment".
piecejointe.typeTexteContent 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.cidTexteID 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éthodeDescription
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)



Voir aussi  

piecejointe.cid
piecejointe.disposition
piecejointe.getContent( )
piecejointe.name
piecejointe.path
piecejointe.type
SMTP_transporteur.send( )

 
PROPRIÉTÉS 

Produit : 4D
Thème : Mail
Numéro : 1644

Commande(s) éligible(s) à l'exécution dans un process préemptif

 
HISTORIQUE 

Créé : 4D v17 R4

 
UTILISATION DE L'ARTICLE

4D - Langage ( 4D v18)