Maison  >  Article  >  Java  >  Envoi de pièces jointes à des e-mails en Java

Envoi de pièces jointes à des e-mails en Java

PHPz
PHPzoriginal
2024-08-30 15:54:11482parcourir

L'article suivant fournit un aperçu de l'envoi de pièces jointes à des e-mails en Java. La fonctionnalité de connexion d'un e-mail avec les informations d'identification du fournisseur de services de messagerie est d'activer la possibilité d'envoyer des pièces jointes à un e-mail. Pour ce faire, le service d'hébergement de messagerie doit être utilisé, après quoi l'hôte de messagerie, le port, le nom d'utilisateur et le mot de passe sont saisis pour créer l'objet Session. Le service d'hébergement de messagerie propose également toutes ces spécifications en plus avec du code, qui peut utiliser n'importe quel serveur de test faux ou autre SMTP, et pour gérer la configuration et l'authentification pour JavaMail, l'objet de session fonctionnera comme une usine de connexion.

Envoi de pièces jointes à des e-mails en Java

Commencez votre cours de développement de logiciels libres

Développement Web, langages de programmation, tests de logiciels et autres

Points clés à retenir

  • L'API JavaMail propose diverses classes utiles telles que BodyPart, MimeBodyPart, etc. pour l'envoi d'e-mails avec pièces jointes.
  • Pour connaître les étapes d'envoi d'e-mails de l'API JavaMail avant de lire cet exemple pour en comprendre le sens.
  • Nous devons charger les deux fichiers jar appelés mail.jar et activation.jar afin d'envoyer des emails à l'aide de l'API JavaMail.
  • Obtenez une session et définissez De, À et Objet dans l'objet MimeMessage par défaut du message.
  • Création d'objets MimeMultipart. Cet objet multipart devrait maintenant inclure le messageBodyPart ci-dessus avec le message réel qui y est placé.
  • En utilisant l'objet Transport, envoyez le message.

Présentation de l'envoi de pièces jointes à des e-mails en Java

L'API JavaMail propose diverses classes utiles telles que BodyPart et MimeBodyPart pour l'envoi d'e-mails avec pièces jointes. Pour apprendre les étapes d'envoi d'e-mails de l'API JavaMail pour en comprendre le sens, vous devez charger les deux fichiers jar suivants afin d'envoyer des e-mails à l'aide de l'API JavaMail :

  • Mail.jar
  • Activation.jar

Ensuite, créons les objets MimeMessage et MimeBodyPart maintenant que nous avons un objet Session.

Pour générer le message électronique, nous utilisons les objets suivants :

  • Obtenez le message de composition pour l'objet de session.
  • Créez un objet MimeBodyPart et spécifiez-y le texte du message. Créez un autre objet MimeBodyPart et ajoutez-y un objet DataHandler. Créez un objet Multipart et incluez-y des objets MimeBodyPart.
  • Envoyez un message en définissant l'objet multipart sur l'objet message.

De plus, les étapes du programme de messagerie Java sont les suivantes :

  • Créer un objet de type javax.mail.Session.
  • Le développement de Javax.mail.internet.
  • Objet MimeMessage, dans lequel nous devons définir plusieurs attributs, notamment l'adresse e-mail du destinataire, le sujet de l'e-mail, l'e-mail de réponse, le corps de l'e-mail et les pièces jointes, entre autres.
  • Envoi du message électronique à l'aide de javax.mail.Transport.

Comment envoyer des pièces jointes à un e-mail en Java ?

Les informations d'identification du fournisseur de services de messagerie doivent être configurées. Ensuite, l'hôte de messagerie, le port, le nom d'utilisateur et le mot de passe sont saisis pour créer l'objet Session. Le service d’hébergement de messagerie offre toutes ces spécificités. Pour le code, nous pouvons utiliser n’importe quel faux serveur de test SMTP. Pour gérer la configuration et l'authentification de JavaMail, l'objet session fonctionnera comme une fabrique de connexions. Pour créer des objets MimeMessage et MimeBodyPart maintenant que nous avons un objet Session. Pour générer le message électronique, nous utilisons les objets suivants :

Code :

Message testmsg = new MimeMessage(sess);
testmsg.setFrom(new InternetAddress(fromaddr));
testmsg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));
testmsg.setSubject("Welcome to our Test Site");

Le code ci-dessus permet de créer le service Message à l'aide de l'objet de session MimeMessage. Afin que nous puissions passer la session(sess) comme paramètre de la file d'attente des messages. Avec l'aide de l'instance, nous pouvons appeler la méthode appelée setFrom() ainsi utilisée pour transmettre l'adresse De ou la liste des expéditeurs. Dans le même cas, nous pouvons appeler l'autre méthode appelée setRecipients() avec un paramètre passant comme la classe Message avec une méthode supplémentaire appelée RecipientType avec l'appel aux destinataires de courrier et en plus InternetAddress avec la méthode par défaut appelée parse(to) pour transmettre l'adresse aux destinataires. setSubject() transmet les valeurs de chaîne dans l'instance de classe Message. L'objet MimeMessage a été généré dans l'extrait ci-dessus avec les informations nécessaires, notamment de, vers et sujet. Ensuite, nous avons un objet MimeBodyPart qui contient le corps de l'e-mail. De plus, pour ajouter une pièce jointe au service de messagerie, nous devons maintenant créer un autre MimeBodyPart.

Code :

MimeBodyPart mpart = new MimeBodyPart();
mpart.attachFile(new File("path/to/file"));

The MimeBodyPart is the mail class body that created the instance and the same will be called for the method called attachFile() with additional parameters like to pass the new File object creation with file path parameters. TLS authentication is possible but different in several ways. As we can see, we are calling additional EmailUtil class methods to deliver email attachments and images even though we haven’t yet defined them.

Example of Sending Email Attachments in Java

Given below is the example mentioned:

Code:

package TestNG;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
public class NewTest{
public static void main(String[] args) throws Exception {
Properties props = new Properties();
props.setProperty("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "465");
props.put("mail.debug", "true");
props.put("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory");
Session sess = Session.<em><i>getDefaultInstance</i></em>(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("[email protected]","xodbizaoiqijifre");
}
});
try{
MimeMessage msg = new MimeMessage(sess);
msg.setFrom(new InternetAddress("[email protected]"));
msg.addRecipient(Message.RecipientType.<em><i>TO</i></em>,new InternetAddress("[email protected]"));
msg.setSubject("Welcome To My Domain");
BodyPart mbody = new MimeBodyPart();
mbody.setText("Your Message body is sent");
MimeBodyPart mbody1 = new MimeBodyPart();
String filename = "D://articles1.txt";
DataSource source = new FileDataSource(filename);
mbody1.setDataHandler(new DataHandler(source));
mbody1.setFileName(filename);
Multipart mpart = new MimeMultipart();
mpart.addBodyPart(mbody);
mpart.addBodyPart(mbody1);
msg.setContent(mpart );
Transport.<em><i>send</i></em>(msg);
System.<em><i>out</i></em>.println("Your email is sent successfully");
}catch (MessagingException ex) {ex.printStackTrace();}
}
}

Output:

Envoi de pièces jointes à des e-mails en Java

  • In the above example, we first set the properties class and call the required mail.smtp.host parameters.
  • By using the session class instance, we can call and validate the user details like username and password.
  • Default session class creation like MimeMessage, MimeBodyPart, and Multipart to connect the user communications.
  • Using try and catch block to get the exception if the condition is not satisfied.
  • The transport protocol and its method for sending the message along with the attachment.

FAQs

Given below are the FAQs mentioned:

Q1. Define sending email with an attachment.

Answer: When enabling the functionality of sending email attachments, the email host, port, username, and password are entered after configuring the email with the email service provider’s credentials.

Q2. What is MimeMultipart in Java?

Answer: The abstract Multipart class is implemented by the MimeMultipart class, which employs MIME standards for multipart data.

Q3. What are the steps to follow sending email with an attachment?

Answer: Get the compose message for the session object.

Create a MimeBodyPart object and specify the message text in it. Create another MimeBodyPart object and add a DataHandler object to it. Create a Multipart object and include MimeBodyPart objects in it.

Send a message by setting the multipart object to the message object.

Conclusion

To obtain the session object, which contains all of the host’s data, including hostname, username, and password. Write the message, the message along with the attachment, and send it. The JavaMail API provides a platform- and protocol-neutral foundation for building mail and messaging applications. The JavaMail API makes a number of abstract classes defining the components of a mail system available.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn