Sending email with attachment using JavaMail API
For sending email with attachment, JavaMail API provides some useful classes like BodyPart, MimeBodyPart etc.
| For better understanding of this example, learn the steps of sending email using JavaMail API first. |
For sending the email using JavaMail API, you need to load the two jar files:
|
There are total 7 steps for sending attachment with email. They are:
- Get the session object
- compose message
- create MimeBodyPart object and set your message text
- create new MimeBodyPart object and set DataHandler object to this object
- create Multipart object and add MimeBodyPart objects to this object
- set the multiplart object to the message object
- send message
Example of sending email with attachment using JavaMail API
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
class SendAttachment{
public static void main(String [] args){
String to="example@gmail.com";//change accordingly
final String user="example@gmail.com";//change accordingly
final String password="xxxxx";//change accordingly
//1) get the session object
//GMail via TLS
Properties properties = System.getProperties();
properties.put("mail.smtp.host", "smtp.gmail.com");
properties.put("mail.smtp.auth", "true");
properties.put("mail.transport.protocol", "smtps");
properties.put("mail.smtp.port", "587");
properties.put("mail.smtp.starttls.enable", "true");
// GMail via SSL
/*properties.put("mail.smtp.host", "smtp.gmail.com");
properties.put("mail.smtp.socketFactory.port", "465");
properties.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
properties.put("mail.smtp.auth", "true");
properties.put("mail.smtp.port", "465");*/
Session session = Session.getDefaultInstance(properties,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(user,password);
}
});
//2) compose message
try{
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(user));
message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));
message.setSubject("Message Aleart");
//3) create MimeBodyPart object and set your message text
BodyPart messageBodyPart1 = new MimeBodyPart();
messageBodyPart1.setText("This is message body");
//4) create new MimeBodyPart object and set DataHandler object to this object
MimeBodyPart messageBodyPart2 = new MimeBodyPart();
String filename = "SendAttachment.java";//change accordingly
DataSource source = new FileDataSource(filename);
messageBodyPart2.setDataHandler(new DataHandler(source));
messageBodyPart2.setFileName(filename);
//5) create Multipart object and add MimeBodyPart objects to this object
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart1);
multipart.addBodyPart(messageBodyPart2);
//6) set the multiplart object to the message object
message.setContent(multipart );
//7) send message
Transport.send(message);
System.out.println("message sent....");
}catch (MessagingException ex) {ex.printStackTrace();}
}
No comments:
Post a Comment