How to use java mail api
The JavaMail API is a set of classes that provide a way to send and receive email messages in a Java application. Here's a step-by-step guide on how to use the JavaMail API:
Step 1: Add the JavaMail API to your project
You can add the JavaMail API to your project by including the following dependencies in your pom.xml
file (if you're using Maven) or your build.gradle
file (if you're using Gradle):
Maven:
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.6.2</version>
</dependency>
Gradle:
dependencies {
implementation 'com.sun.mail:javax.mail:1.6.2'
}
Step 2: Import the necessary classes
In your Java code, import the necessary classes from the JavaMail API:
import javax.mail.*;
import javax.mail.internet.*;
import java.util.Properties;
Step 3: Create a Session object
Create a Session
object by calling the Session.getDefaultInstance()
method:
Session session = Session.getDefaultInstance(new Properties(), null);
Step 4: Create a Message object
Create a Message
object by calling the Message
constructor:
Message message = new MimeMessage(session);
Step 5: Set the message properties
Set the message properties such as the sender, recipient, subject, and body:
message.setFrom(new InternetAddress("[email protected]"));
message.setRecipient(Message.RecipientType.TO, new InternetAddress("[email protected]"));
message.setSubject("Test email");
message.setText("This is a test email");
Step 6: Send the message
Send the message by calling the Transport.send()
method:
Transport.send(message);
Step 7: Receive emails
To receive emails, you need to create a Store
object and a Folder
object:
Store store = session.getStore();
Folder folder = store.getFolder("INBOX");
Then, you can use the Folder.open()
method to open the folder and retrieve the emails:
folder.open(Folder.READ_ONLY);
Message[] messages = folder.getMessages();
You can then iterate through the messages and process them as needed.
Example code
Here's an example code snippet that sends an email using the JavaMail API:
import javax.mail.*;
import javax.mail.internet.*;
import java.util.Properties;
public class SendEmail {
public static void main(String[] args) {
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.example.com");
props.put("mail.smtp.port", "587");
props.put("mail.smtp.auth", "true");
Session session = Session.getDefaultInstance(props, null);
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("[email protected]"));
message.setRecipient(Message.RecipientType.TO, new InternetAddress("[email protected]"));
message.setSubject("Test email");
message.setText("This is a test email");
Transport.send(message);
}
}
And here's an example code snippet that receives emails using the JavaMail API:
import javax.mail.*;
import javax.mail.internet.*;
import java.util.Properties;
public class ReceiveEmail {
public static void main(String[] args) {
Properties props = new Properties();
props.put("mail.store.protocol", "imaps");
props.put("mail.store.host", "imap.example.com");
props.put("mail.store.port", "993");
Session session = Session.getDefaultInstance(props, null);
Store store = session.getStore();
Folder folder = store.getFolder("INBOX");
folder.open(Folder.READ_ONLY);
Message[] messages = folder.getMessages();
for (Message message : messages) {
System.out.println("Subject: " + message.getSubject());
System.out.println("From: " + message.getFrom()[0]);
System.out.println("Text: " + message.getContent());
}
}
}
Note that you'll need to replace the placeholders (smtp.example.com
, [email protected]
, etc.) with your actual email server settings and email addresses.