Créer et envoyer des e-mails Outlook Java

Aspose.Email for Java est une puissante API de traitement des e-mails qui fournit toutes les fonctionnalités de base et avancées pour la gestion des e-mails. Il vous permet de créer des e-mails Outlook, de lire des e-mails existants et de convertir des messages MSG, EML, PST, OST, MBOX et MHT dans d’autres formats à partir de vos applications Java. Dans cet article, je vais démontrer quelques fonctionnalités de base mais importantes sur la façon de créer et d’envoyer des e-mails Outlook à l’aide de Java.

Je vais couvrir les fonctionnalités suivantes de création et d’envoi d’e-mails dans cet article :

API de messagerie Java - Installation

Aspose.Email for Java peut être téléchargé à partir de la section Téléchargements ou installé à l’aide des configurations Maven suivantes.

Repository:

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>

Dependency:

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-email</artifactId>
    <version>20.3</version>
    <classifier>jdk16</classifier>
</dependency>

Créer des messages électroniques Outlook à l’aide de Java

Aspose.Email for Java vous permet de créer des e-mails et de les enregistrer dans le format d’e-mail de votre choix, notamment EML, EMLX, MSG et MHTML. Voici les étapes pour créer un message électronique et l’enregistrer en tant que fichier.

  • Créez une instance de la classe MailMessage.
  • Définissez les propriétés du message telles que Objet, Corps, À, CC, etc.
  • Ajoutez des pièces jointes si nécessaire.
  • Enregistrez le message électronique dans le format de votre choix à l’aide de la méthode MailMessage.save().

L’exemple de code suivant montre comment créer un message électronique Outlook à l’aide de Java.

MailMessage message = new MailMessage();

// Définir l'objet du message, le corps et les informations sur l'expéditeur
message.setSubject("New message created by Aspose.Email for .NET");
message.setBody("This is the body of the email.");
message.setFrom(new MailAddress("from@domain.com", "Sender Name", false));

// Ajouter aux destinataires et aux destinataires CC
message.getTo().addItem(new MailAddress("to1@domain.com", "Recipient 1", false));
message.getCC().addItem(new MailAddress("cc1@domain.com", "Recipient 3", false));

// Ajouter des pièces jointes
message.getAttachments().addItem(new Attachment("word.docx"));

// Enregistrer le message aux formats EML, EMLX, MSG et MHTML
message.save("EmailMessage.eml", SaveOptions.getDefaultEml());
message.save("EmailMessage.emlx", SaveOptions.createSaveOptions(MailMessageSaveType.getEmlxFormat()));
message.save("EmailMessage.msg", SaveOptions.getDefaultMsgUnicode());
message.save("EmailMessage.mhtml", SaveOptions.getDefaultMhtml());

Créer un e-mail avec un corps HTML à l’aide de Java

Dans l’exemple précédent, nous avons simplement créé un e-mail en texte brut et l’avons enregistré en tant que fichier e-mail. Cependant, la plupart des e-mails d’aujourd’hui sont créés avec un corps HTML pour bien organiser et présenter le contenu de l’e-mail. Dans ce cas, les balises HTML sont utilisées pour spécifier la mise en page de l’e-mail. Voyons comment créer un e-mail avec un corps HTML en utilisant Aspose.Email for Java.

  • Utilisez la classe MailMessage pour créer un nouveau message électronique.
  • Définissez Objet, À, CC et d’autres propriétés.
  • Définissez le corps de l’e-mail à l’aide de la méthode MailMessage.setHtmlBody(string).
  • Enregistrez le message électronique à l’aide de la méthode MailMessage.save().

L’exemple de code suivant montre comment créer un e-mail avec un corps HTML à l’aide de Java.

MailMessage message = new MailMessage();

// Définir l'objet du message, le corps et les informations sur l'expéditeur
message.setSubject("New message created by Aspose.Email for .NET");
message.setHtmlBody("<b>This line is in bold.</b> <br/> <br/> <font color=blue>This line is in blue color</font>");
message.setFrom(new MailAddress("from@domain.com", "Sender Name", false));

// Ajouter aux destinataires et aux destinataires CC
message.getTo().addItem(new MailAddress("to1@domain.com", "Recipient 1", false));
message.getCC().addItem(new MailAddress("cc1@domain.com", "Recipient 3", false)); 

// Enregistrer le message aux formats EML, EMLX, MSG et MHTML
message.save("EmailMessage.eml", SaveOptions.getDefaultEml()); 

Créer un e-mail avec un codage particulier à l’aide de Java

Aspose.Email for Java vous permet également de définir l’encodage de texte souhaité pour les messages électroniques. La norme de codage est utilisée pour indiquer à l’application de messagerie ou au navigateur comment interpréter les caractères dans le corps de l’e-mail. Voici les étapes pour créer un e-mail avec une norme d’encodage particulière.

L’exemple de code suivant montre comment créer un e-mail avec une norme de codage particulière à l’aide de Java.

MailMessage message = new MailMessage();

// Définir l'objet du message, le corps et les informations sur l'expéditeur
message.setSubject("New message created by Aspose.Email for .NET");
message.setHtmlBody("<b>This line is in bold.</b> <br/> <br/> <font color=blue>This line is in blue color</font>");
message.setFrom(new MailAddress("from@domain.com", "Sender Name", false));

// Spécifier l'encodage 
message.setBodyEncoding(Charset.forName("US-ASCII"));

// Ajouter aux destinataires et aux destinataires CC
message.getTo().addItem(new MailAddress("to1@domain.com", "Recipient 1", false));
message.getCC().addItem(new MailAddress("cc1@domain.com", "Recipient 3", false)); 

// Enregistrer le message aux formats EML, EMLX, MSG et MHTML
message.save("EmailMessage.eml", SaveOptions.getDefaultEml()); 

Envoyer des e-mails Outlook à l’aide de Java

Une fois que vous avez créé un e-mail, vous pouvez l’envoyer à ses destinataires à l’aide du protocole SMTP (Simple Mail Transfer Protocol). Voici les étapes pour envoyer un e-mail à l’aide de Aspose.Email for Java.

  • Créez un nouveau message électronique ou chargez-en un existant à l’aide de la classe MailMessage.
  • Créez une instance de la classe SmtpClient et définissez son hôte, son nom d’utilisateur, son mot de passe et son port.
  • Envoyez un e-mail à l’aide de la méthode SmtpClient.send().

L’exemple de code suivant montre comment envoyer un e-mail via un client SMTP en Java.

MailMessage message = new MailMessage();

// Définir l'objet du message, le corps et les informations sur l'expéditeur
message.setSubject("New message created by Aspose.Email for .NET");
message.setHtmlBody("<b>This line is in bold.</b> <br/> <br/> <font color=blue>This line is in blue color</font>");
message.setFrom(new MailAddress("from@domain.com", "Sender Name", false));

// Spécifier l'encodage 
message.setBodyEncoding(Charset.forName("US-ASCII"));

// Ajouter aux destinataires et aux destinataires CC
message.getTo().addItem(new MailAddress("to1@domain.com", "Recipient 1", false));
message.getCC().addItem(new MailAddress("cc1@domain.com", "Recipient 3", false)); 

// Créer une instance de la classe SmtpClient
SmtpClient client = new SmtpClient();

// Spécifiez votre serveur hôte de messagerie, nom d'utilisateur, mot de passe, port
client.setHost("smtp.server.com");
client.setUsername("Username");
client.setPassword("Password");
client.setPort(25);

try
{
	// Client.Send enverra ce message
	client.send(message); 
}

catch (Exception ex)
{
	ex.printStackTrace();
}

Envoyer des e-mails de manière asynchrone à l’aide de Java

Aspose.Email for Java vous permet également d’envoyer des e-mails de manière asynchrone. Pour cela, vous pouvez utiliser la méthode SmtpClient.beginSend(). L’exemple de code suivant montre comment envoyer des e-mails de manière asynchrone à l’aide de Java.

MailMessage message = new MailMessage();

// Définir l'objet du message, le corps et les informations sur l'expéditeur
message.setSubject("New message created by Aspose.Email for .NET");
message.setHtmlBody("<b>This line is in bold.</b> <br/> <br/> <font color=blue>This line is in blue color</font>");
message.setFrom(new MailAddress("from@domain.com", "Sender Name", false));

// Spécifier l'encodage 
message.setBodyEncoding(Charset.forName("US-ASCII"));

// Ajouter aux destinataires et aux destinataires CC
message.getTo().addItem(new MailAddress("to1@domain.com", "Recipient 1", false));
message.getCC().addItem(new MailAddress("cc1@domain.com", "Recipient 3", false)); 

// Créer une instance de la classe SmtpClient
SmtpClient client = new SmtpClient();

// Spécifiez votre serveur hôte de messagerie, nom d'utilisateur, mot de passe, port
client.setHost("smtp.server.com");
client.setUsername("Username");
client.setPassword("Password");
client.setPort(25);

try
{
	// Client.beginSend enverra ce message
	client.beginSend(message); 
}

catch (Exception ex)
{
	ex.printStackTrace();
}

Envoyer des e-mails avec un accusé de lecture à l’aide de Java

Vous pouvez également ajouter une demande de confirmation de lecture aux messages électroniques. Cette fonctionnalité vous permet de recevoir une notification après la réception de l’e-mail. Voici les étapes pour créer et envoyer un message électronique contenant une demande de confirmation de lecture.

  • Créez un nouveau message électronique à l’aide de la classe MailMessage.
  • Définissez l’option de notification de livraison à l’aide de la méthode MailMessage.setDeliveryNotificationOptions().
  • Ajoutez les informations de réception dans les en-têtes des e-mails.
  • Utilisez la classe SmtpClient pour envoyer l’e-mail.

L’exemple de code suivant montre comment envoyer un e-mail contenant une confirmation de lecture à l’aide de Java.

MailMessage message = new MailMessage();

// Définir l'objet du message, le corps et les informations sur l'expéditeur
message.setSubject("New message created by Aspose.Email for .NET");
message.setHtmlBody("<b>This line is in bold.</b> <br/> <br/> <font color=blue>This line is in blue color</font>");
message.setFrom(new MailAddress("from@domain.com", "Sender Name", false));

// Définir les options de notification
message.setDeliveryNotificationOptions(DeliveryNotificationOptions.OnSuccess);
message.getHeaders().add("Return-Receipt-To", "from@domain.com");
message.getHeaders().add("Disposition-Notification-To", "from@domain.com"); 

// Ajouter aux destinataires 
message.getTo().addItem(new MailAddress("to1@domain.com", "Recipient 1", false)); 

// Créer une instance de la classe SmtpClient
SmtpClient client = new SmtpClient();

// Spécifiez votre serveur hôte de messagerie, nom d'utilisateur, mot de passe, port
client.setHost("smtp.server.com");
client.setUsername("Username");
client.setPassword("Password");
client.setPort(25);

try
{
	// Client.Send enverra ce message
	client.send(message);
}

catch (Exception ex)
{
	ex.printStackTrace();
}

Envoyer des e-mails en masse à l’aide de Java

Il peut arriver que vous ayez besoin d’envoyer un grand nombre d’e-mails différents. Dans ce cas, vous pouvez simplement ajouter tous les e-mails à un objet MailMessageCollection et le transmettre au client SMTP pour l’envoi. L’exemple de code suivant montre comment envoyer un grand nombre d’e-mails à l’aide de Java.

// Créez des instances de la classe MailMessage et spécifiez To, From, Subject et Message
MailMessage message1 = new MailMessage("msg1@from.com", "msg1@to.com", "Subject1", "message1, how are you?");
MailMessage message2 = new MailMessage("msg1@from.com", "msg2@to.com", "Subject2", "message2, how are you?");
MailMessage message3 = new MailMessage("msg1@from.com", "msg3@to.com", "Subject3", "message3, how are you?");

// Créez une instance de MailMessageCollection et ajoutez-y des e-mails
MailMessageCollection manyMsg = new MailMessageCollection();
manyMsg.addItem(message1);
manyMsg.addItem(message2);
manyMsg.addItem(message3);		

// Créez SmtpClient et spécifiez le serveur, le port, le nom d'utilisateur et le mot de passe
SmtpClient client = new SmtpClient("mail.server.com", 25, "Username", "Password");
 
try
{  
	// Envoyer des messages
	client.send(manyMsg); 
}
catch (Exception ex)
{
	  ex.printStackTrace();
}

Démos en direct

Conclusion

Dans cet article, je vous ai montré comment créer des messages électroniques Outlook et les enregistrer aux formats EML, MSG et MTH à l’aide de Java. De plus, différentes manières d’envoyer des e-mails en Java à l’aide du client STMP sont également abordées. Vous pouvez en savoir plus sur la Java Email Library d’Aspose en utilisant la documentation.

Voir également