Skip to content

$mail.send

Description

Envoie un e-mail

Syntaxe

$mail.send( to , subject , text [ , attachments [ , options ] ] )

Paramètres

to string / array / map
Adresse(s) e-mail de destination. Le paramètre peut être une string, un tableau de strings, ou un map contenant les propriétés to, cc et/ou bcc . Ces propriétés peuvent prendre soit une valeur unique sous forme de string, soit un array de strings.
subject string
Sujet de l'e-mail
text string
Texte de l'e-mail
attachments string / array / map

Chemin absolu du ou des fichiers à ajouter en pièce jointe. Le paramètre peut prendre différentes formes:

  • string : désigne le path absolu d'un fichier à lier en pièce jointe au mail
  • tableau de string : désigne une liste de path absolus de fichiers à lier en pièce jointe au mail
  • tableau de file
  • map ayant la forme { path : "string", cid : "string", mimetype : "string" }.
    On utilisera cette notation dans le cas où l'on veut intégrer une image ou un fichier au corps du mail. Par exemple, prenons le cas du contenu de mail suivant:

    <html>
        <body>
            <p>Hello World!</p>
            <img src="cid:my-image-id"/>
        </body>
    </html>
    

    Pour spécifier le path correspondant à l'image représentée par cid:my-image-id, on définira le paramètre attachments ainsi:

    { path: "c:/temp/image.png", cid: "my-image-id", mimetype: "image/png" }
    
  • tableau de map tel que décrit ci-dessus, permettant de définir plusieurs références d'images ou de fichiers

options map

Map pouvant contenir les options suivantes:

smtpConfig string
Nom de la config du serveur smtp à utiliser. Fait référence à un name d'entrée email.smtp du config
from string
Adresse d'expéditeur. Peut être une simple adresse e-mail, ou une valeur composée de la forme "John Doe john@doe.com" si on souhaite faire apparaître un nom en clair dans l'adresse de l'e-mail
replyTo string
Adresse de réponse. Peut être une simple adresse e-mail, ou une valeur composée de la forme "John Doe john@doe.com" si on souhaite faire apparaître un nom en clair
readConfirmation boolean
Flag demandant une confirmation de lecture. L'activation de ce flag entraîne l'ajout d'un header Disposition-Notification-To dans l'en-tête de l'e-mail, avec comme valeur l'adresse définie comme replyTo. Le flag est ignoré si l'option replyTo ne contient pas une adresse.
receiptConfirmation boolean

flag demandant un accusé de réception de réception. L'activation de ce flag entraîne l'ajout d'un header Return-Receipt-To dans l'en-tête de l'e-mail, avec comme valeur l'adresse définie comme replyTo. Le flag est ignoré si l'option replyTo ne contient pas une adresse.

En principe, le flag readConfirmation est suffisant pour demander un accusé de réception car le header utilisé dans ce cas semble plus pris en charge par les clients mail.

host string
URL du host à utiliser (si défini, prime sur les autres valeurs de host, y compris celle définie au niveau de la smtpConfig)
port number
Port du serveur smtp à utiliser (si défini, prime sur les autres valeurs de port, y compris celle définie au niveau de la smtpConfig)
username string
Nom d'utilisateur pour l'authentification sur le serveur smtp (si défini, prime sur le username défini ailleurs, y compris celui défini au niveau de la smtpConfig)
password string
Mot de passe à utiliser pour l'authentification sur le serveur smtp (si défini, prime sur le password défini ailleurs, y compris celui défini au niveau de la smtpConfig)
security string
Type de sécurité; peut prendre une des valeurs "none", "starttls" ou "ssl" (ce dernier est mis pour le mode "ssl/tls"). Si défini, prime sur la securité définie ailleurs, y compris celle définie au niveau de la smtpConfig
headers map
Map contenant les valeurs de headers à passer; ce map permet par exemple de surcharger les headers "content-type", "content-transfert-encoding", etc.
properties map
Map contenant des propriétés à passer à la session. Permet par exemple d'activer le mode debug { mail.debug : true }.

Retour

Retourne true si l'e-mail a pu être envoyé au serveur smtp, sinon false.

Attention, le fait que la méthode retourne true ne signifie pas pour autant que l'e-mail a été acheminé jusqu'au destinataire. Cela indique uniquement que les paramètres d'envoi de l'e-mail sont corrects et que l'e-mail a pu être transmis au serveur smtp. C'est ce dernier qui se chargera d'acheminer l'e-mail. En cas d'échec (adresse inexistante, boîte e-mail pleine, etc.), il renverra un e-mail d'erreur à l'adresse de l'expéditeur.

Exemple

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
$mail.send({ to: "info@epilogic.ch", bcc: $$.inputs.email },
           $$.inputs.object,
           `<html>
              <body>
                <p>Message envoyé depuis le site internet epilogic.ch le `::t &
                  $cal.format(ts, "dd/MM/yyyy") & ` à ` & $cal.format(ts, "HH:mm") & `.</p>
                <table>
                  <tr>
                    <th>Nom de l'émetteur</th>
                    <td>${$$.inputs.name}</td>
                  </tr>
                  <tr>
                    <th>E-mail de l'émetteur</th>
                    <td>${$$.inputs.email}</td>
                  </tr>
                  <tr>
                    <th>Téléphone de l'émetteur</th>
                    <td>${$$.inputs.tel}</td>
                  </tr>
                  <tr>
                    <th>Message</th>
                    <td>`::t & $str.replace($$.inputs.message, '\n', "<br/>") & `</td>
                  </tr>
                </table>
              </body>
            </html>`::t,
           null,
           { replyTo: $$.inputs.email });