Création et définition du contenu des e‑mails

Créer un nouveau message électronique

Aspose.Email for Java permet aux développeurs de créer des messages MIME (Multipurpose Internet Mail Extensions) à partir de zéro. La classe principale pour cela dans l’API Aspose.Email for Java est la MailMessage classe. Cet article explique les étapes nécessaires pour créer des messages électroniques aux formats de fichiers EML, MSG et MTH en utilisant Aspose.Email for Java.

Pour créer un message électronique à partir de zéro :

  1. Créez une instance de la classe MailMessage.
  2. Définissez l’objet du message en utilisant le setSubject() méthode.
  3. Définissez le corps du message en utilisant le setHtmlBody() méthode.
  4. Définissez l’expéditeur du courriel en utilisant le setFrom() méthode.
  5. Définissez le destinataire dans le champ TO en utilisant le getTo().add() méthode.
  6. Définissez le destinataire dans le champ CC en utilisant le getCC().add() méthode.
  7. Appelez le Save() méthode pour enregistrer le fichier de message sur le disque aux formats MSG, EML et MHT.  

Spécification de plusieurs destinataires

Le MailMessage représente un message e‑mail. Les instances de la classe MailMessage sont utilisées pour construire des messages e‑mail qui sont transmis à un serveur SMTP à l’aide du SmtpClient classe. Cet article montre comment spécifier plusieurs adresses e‑mail. Les adresses e‑mail peuvent être spécifiées à l’aide de la classe MailMessage. Les adresses e‑mail utilisées dans la classe MailMessage sont :

  • To - Les adresses des destinataires peuvent être spécifiées dans le champ « To ». Les destinataires du champ « To » constituent le public principal du message. Il peut y avoir plus d’une adresse destinataire.
  • Cc - CC signifie « copie carbone » ou « copie de courtoisie », et vous permet d’ajouter des destinataires qui doivent voir l’e‑mail mais qui ne sont pas forcément tenus d’y répondre. Par exemple, des managers ou les membres de votre équipe qui doivent être informés d’une conversation. Avec Aspose.Email, les adresses CC peuvent être spécifiées dans votre code. Ainsi, les e‑mails automatisés, ou tous les e‑mails vers une adresse spécifique, peuvent être copiés aux personnes concernées.
  • Bcc - Bcc, copie carbone invisible, vous permet d’envoyer un e‑mail à un destinataire qui reste caché aux autres destinataires. Alors qu’un CC apparaît dans les informations de l’e‑mail visibles par les destinataires principaux, un Bcc ne le fait pas. Il sert à une notification cachée. 

Pour spécifier plusieurs adresses e‑mail dans un message, suivez ces étapes :

  1. Créez une instance de la classe MailMessage.
  2. Spécifiez les adresses From ainsi que plusieurs adresses To, Cc et Bcc en utilisant l’instance MailMessage.
  3. Créez une instance de la classe SmtpClient et envoyez l’e‑mail en utilisant la méthode Send.

L’exemple de code ci‑dessus montre comment spécifier plusieurs adresses To, CC et BCC.

Modification des adresses e‑mail en noms conviviaux

Les exemples de programmation ci‑dessus démontrent comment remplacer les adresses e‑mail par des noms conviviaux dans un message. Un nom convivial est un nom plus lisible que l’adresse e‑mail, par exemple John Smith au lieu de js346@domain.com. Lors de l’envoi d’un e‑mail, nous pouvons associer un nom convivial à une adresse e‑mail dans le MailMessage constructeur de classe.

Pour remplacer les adresses e‑mail par des noms conviviaux dans un message, suivez ces étapes :

  • Créez une instance de la classe MailMessage et spécifiez les adresses e‑mail dans les champs To et From ainsi que leurs noms conviviaux.
  • Spécifiez les adresses e‑mail Cc et Bcc ainsi que leurs noms conviviaux en appelant le constructeur de la classe MailMessage dans l’instance MailMessage.
  • Créez une instance de la classe SmtpClient et envoyez l’e‑mail en utilisant la méthode Send.

Le fragment de code suivant montre comment afficher les noms des adresses e‑mail.

Définir le corps du mail

Le MailMessage classe représente un message e‑mail. Les instances de la classe MailMessage sont utilisées pour construire des messages e‑mail qui sont transmis à un serveur SMTP pour la livraison à l’aide du SmtpClient classe. Un corps de mail peut être spécifié à l’aide de la classe MailMessage. Un corps d’e‑mail peut être spécifié à l’aide de setHtmlBody méthode dans MailMessage.

En plus de HtmlBody, Aspose.Email possède une autre méthode liée au corps du message :

  • isBodyHtml: indique à l’utilisateur si le corps est HTML ou texte brut.

Ce sujet montre comment définir le texte du corps HTML et définir un texte alternatif.

Définir le corps HTML

HtmlBody est utilisé pour spécifier le contenu HTML du corps d’un message. HtmlBody doit être encadré par les balises . Le fragment de code suivant montre comment définir le corps HTML.

Définir le texte alternatif

Utilisez le AlternateView classe pour spécifier des copies d’un message e‑mail dans différents formats. Par exemple, si vous envoyez un message en HTML, vous pouvez également fournir une version texte brut au cas où certains destinataires utilisent des lecteurs de mail qui ne peuvent pas afficher le contenu HTML. Cette classe possède deux propriétés, LinkedResources et BaseUri, qui sont utilisés pour résoudre les URL dans le contenu de l’e‑mail.

  • LinkedResources est une collection d’objets LinkedResources. Lors du rendu, les URL du contenu de l’e‑mail sont d’abord comparées aux URL du lien de contenu de chaque objet LinkedResources dans la collection LinkedResources, puis résolues.
  • BaseUri est utilisé par le lecteur de mail pour résoudre les URL relatives à l’intérieur du corps, ainsi que pour résoudre les URL de lien de contenu relatives, dans la collection LinkedResources.

Le fragment de code suivant montre comment définir le texte alternatif.

Spécification de l’encodage du corps du mail

Le type de contenu définit le format du contenu de l’e‑mail : le jeu de caractères. Par exemple, quelques jeux de caractères courants fournis dans java.nio.Charset sont :

  • US-ASCII - ASCII sur sept bits, aussi appelé ISO646-US, ou bloc Latin de base du jeu de caractères Unicode
  • ISO-8859-1 - Alphabet latin ISO n° 1, aussi appelé ISO-LATIN-1
  • UTF-8 - Format de transformation UCS sur huit bits
  • UTF-16BE - Format de transformation UCS sur seize bits, ordre des octets big‑endian
  • UTF-16LE - Format de transformation UCS sur seize bits, ordre des octets little‑endian
  • UTF-16 - Format de transformation UCS sur seize bits, ordre des octets identifié par une marque d’ordre des octets optionnelle

Aspose.Email utilise le BodyEncoding propriété de la classe MailMessage pour spécifier l’encodage du corps du mail. Pour encoder le corps d’un message e‑mail, suivez les étapes ci‑dessous :

  1. Créez une instance de la classe MailMessage.
  2. Spécifiez l’expéditeur, le destinataire et le corps HTML du mail dans l’instance MailMessage.
  3. Spécifiez la valeur de la propriété BodyEncoding.
  4. Créez une instance de la SmtpClient classe et envoyez l’e‑mail en utilisant la méthode Send.

Fonctionnalités de MailMessage

Le MailMessage classe représente le contenu d’un message e‑mail. Les instances de la classe MailMessage sont utilisées pour construire un message e‑mail qui est transmis à un serveur SMTP pour la livraison à l’aide du SmtpClient classe. Cet article montre comment utiliser les fonctionnalités utilitaires de la classe MailMessage pour contrôler les caractéristiques d’e‑mail suivantes :

  • Date et heure - Via la classe MailMessage setDate méthode pour fixer la date et l’heure d’un e‑mail.
  • Priorité du message - Le MailPriority classe spécifie les niveaux de priorité pour l’envoi d’un message e‑mail. Elle peut être basse, normale ou élevée. La priorité influence la vitesse de transmission et la livraison.
  • Sensibilité du message - Le MailSensitivity classe spécifie cinq niveaux de sensibilité.
  • Notification de livraison - Les notifications de livraison informent l’expéditeur que l’e‑mail qu’il a envoyé a bien été livré dans la boîte de réception du destinataire.

Par défaut, la date correspond à la date réelle d’envoi du message, et l’heure correspond à l’heure d’envoi, comme affiché par Microsoft Outlook. Cependant, l’heure réelle de livraison du mail est ajoutée par le serveur SMTP lui‑même dans l’en-tête du mail. Par exemple, ci‑dessous un en-tête de mail standard, où le champ Date a été défini à l’aide de MailMessage.setDate.

Le fragment de code ci‑dessous illustre comment chacune des fonctionnalités décrites ci‑above peut être utilisée.

Demande d’accusé de lecture

Les exemples de programmation ci‑dessous montrent comment vous pouvez demander un accusé de lecture. La classe MailMessage DeliveryNotificationOptions La propriété d’énumération décrit le options de notification de livraison pour un e‑mail. Pour demander un accusé de lecture après l’envoi d’un e‑mail, suivez ces étapes :

  1. Créez une instance de la classe MailMessage.
  2. Spécifiez l’expéditeur, le destinataire et le corps HTML du mail dans l’instance MailMessage.
  3. Spécifiez les DeliveryNotificationOptions dans d’autres instances de MailMessage.
  4. Créez une instance de la classe SmtpClient et envoyez l’e‑mail en utilisant la méthode Send.

Les demandes d’accusé de lecture ne sont pas toujours respectées parce que :

  • Un client de messagerie peut ne pas implémenter cette fonctionnalité.
  • L’utilisateur final peut avoir désactivé cette fonctionnalité.
  • L’utilisateur final peut choisir de ne pas en envoyer.

Le fragment de code suivant montre comment demander un accusé de lecture.

Définir les en‑têtes d’e‑mail

Les en‑têtes d’e‑mail représentent une norme Internet et les RFC définissent les champs d’en‑tête inclus dans les messages e‑mail Internet. Un en‑tête d’e‑mail peut être spécifié à l’aide du MailMessage classe. Les types d’en‑tête courants sont définis dans le HeaderType classe. C’est une classe scellée qui fonctionne comme une énumération normale.

Normalement, un en‑tête d’e‑mail contient ces champs :

  • To : les adresses des destinataires peuvent être spécifiées dans le champ To. Les destinataires du champ To constituent le public principal du message. Il peut y avoir plusieurs adresses de destinataire.
  • From : ce champ indique l’adresse e‑mail de l’expéditeur du message.
  • Cc : permet aux utilisateurs d’envoyer un message en « Carbon Copy » ou « Courtesy Copy ». C’est‑à‑dire que le destinataire n’est pas censé répondre ou agir. Typiquement, le personnel de supervision est notifié par CC.
  • Bcc : signifie Blind Carbon Copy, se réfère à la pratique d’envoyer un message à plusieurs destinataires de façon à ce que ce qu’ils reçoivent ne contienne pas la liste complète des destinataires. Il est destiné à une notification cachée.
  • ReplyTo : ce champ d’en‑tête indique où l’expéditeur souhaite que les réponses soient envoyées.
  • Subject : titre, en‑tête, sujet. Souvent utilisé comme indicateur de fil de discussion pour les messages répondant ou commentant d’autres messages.
  • Date : cet en‑tête spécifie une date (et une heure). Normalement, il s’agit de la date à laquelle le message a été rédigé et envoyé.
  • XMailer : informations sur le logiciel client de l’expéditeur. Exemple : X-Mailer : Aspose.Email XMailer est utilisé par les clients de messagerie. Différents clients de messagerie auront des valeurs XMailer différentes. La valeur XMailer de MS Outlook est Microsoft Office Outlook, Build 11.0.5510. Elle est ignorée par le destinataire ou le lecteur d’e‑mail.

Normalement, un en‑tête d’e‑mail ressemble à ceci :


 Reply-To: reply@reply.com

From: sender@sender.com

To: guangzhou@guangzhoo.com

Subject: test mail

Date: 6 Mar 2006 8:2:2 +0800

X-Mailer: Aspose.Email

Pour personnaliser un en‑tête d’e‑mail, suivez ces étapes :

  • Créez une instance de la MailMessage classe.
  • Spécifiez To, From, CC, Bcc, ReplyTo, Subject, Date & XMailer à l’aide d’une instance de la classe MailMessage.
  • Créez une instance de la MimeHeader classe et spécifiez l’en‑tête secret.
  • Ajoutez l’en‑tête secret à l’instance MailMessage.

Dans le code ci‑dessous, nous avons personnalisé un en‑tête d’e‑mail.

Le fragment de code ci‑dessus génère un en‑tête d’e‑mail au format suivant. Cela peut être observé en ouvrant le fichier MsgHeaders.msg dans Microsoft Outlook puis en affichant ses propriétés.


 Reply-To: reply@reply.com

From: sender@sender.com

To: receiver1@receiver.com

CC: receiver2@receiver.com

BCC: receiver3@receiver.com

Subject: test mail

Date: 6 Mar 2006 8:2:2 +0800

X-Mailer: Aspose.Email

secret-header: mystery

Insérer un en‑tête à un emplacement spécifique

Le Add la méthode de HeadersCollection insère l’en‑tête à la fin de la collection. Cependant, il peut parfois être nécessaire d’insérer un en‑tête à un emplacement précis. Dans ce cas, la méthode Add ne sera pas utile. Pour cela, utilisez le Insert méthode de HeadersCollection. Si la collection contient des en‑têtes avec le même nom, cet en‑tête sera inséré avant les autres en‑têtes du même nom. Voici la signature de la méthode Insert et un exemple de code d’utilisation.


 Method Signature

HeaderCollection.insert(String name, String value)

Ajout d’en‑têtes personnalisés à l’e‑mail

Les exemples de programmation ci‑dessous démontrent comment spécifier un en‑tête personnalisé dans un message e‑mail. Un en‑tête d’e‑mail peut être spécifié à l’aide de la classe MailMessage. Pour spécifier un en‑tête personnalisé dans un message e‑mail, veuillez suivre ces étapes :

  1. Créez une instance de la classe MailMessage.
  2. Spécifiez les valeurs to, from et subject à l’aide de l’instance MailMessage.
  3. Ajoutez l’en‑tête secret dans l’instance MailMessage.
  4. Créez une instance de la classe SmtpClient et envoyez l’e‑mail en utilisant la méthode Send.

Le fragment de code suivant montre comment ajouter des en‑têtes personnalisés à un e‑mail.

Signer les e‑mails avec DKIM

Aspose.Email permet de signer les e‑mails avec DKIM (DomainKeys Identified Mail). Cela permet à une organisation d’assumer la responsabilité d’un message en transit (à propos de DKIM). DKIM ajoute une signature numérique aux en‑têtes du message e‑mail qui peut être validée par les destinataires. La clé publique de l’expéditeur permet au destinataire de vérifier que la signature correspond au contenu du message. La classe MailMessage DKIMSign la méthode est utilisée pour définir les informations cryptographiques et de signature pour signer le message. Le fragment de code suivant montre comment signer des e‑mails avec DKIM.

Effectuer une fusion de courrier

Les fusions de courrier vous aident à créer et envoyer un lot de messages e‑mail similaires. Le cœur des e‑mails est le même, mais le contenu peut être personnalisé. Typiquement, les coordonnées du destinataire (prénom, nom, entreprise, etc.) sont utilisées pour personnaliser l’e‑mail.

|todo:image_alt_text| | :- | |Figure : Illustration du fonctionnement d’une fusion de courrier|

Pour effectuer une fusion de courrier avec Aspose.Email, suivez les étapes suivantes :

  1. Créez une fonction avec la signature nom
  2. Créez une instance de la MailMessage classe.
  3. Spécifiez l’expéditeur, le destinataire, le sujet et le corps.
  4. Créez une signature pour la fin de l’e‑mail.
  5. Créez une instance de la TemplateRoutine classe et passez‑lui le MailMessage instance.
  6. Prenez la signature dans le TemplateRoutine instance.
  7. Créez une instance de la DataTable classe.
  8. Ajoutez les colonnes Receipt, FirstName et LastName comme sources de données dans la classe DataTable
  9. Créez une instance de la DataRow classe
  10. Spécifiez l’adresse de réception, le prénom et le nom de famille dans l’objet DataRow
  11. Créez une instance de la MailMessageCollection classe
  12. Spécifiez le TemplateRoutine et les instances DataTable dans le MailMessageCollection instance.
  13. Créez une instance de la SmtpClient classe et spécifiez le serveur, le port, le nom d’utilisateur et le mot de passe
  14. Envoyer des e‑mails en utilisant le SmtpClient méthode BulkSendAsync de la classe

Le code ci‑dessous envoie un e‑mail à une personne depuis trois autres.