I recently needed to send an email via Java. This was the first time i tried to do this, so I’ll post the code here. Maybe someone can use this one day.
First of all, you need to get JavaMail library here: http://www.oracle.com/technetwork/java/javamail/index-138643.html
Then you can create a class called “Mail” or “MailService”. Then paste the following code:
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class Mail {
private static final String EMAIL = "user@gmail.com";
private static final String PASSWORD = "supersecretpassword";
private static final String USERNAME = "totallysillyusername";
private static final int SMTP_PORT = 25;
private static final String SMTP_HOST = oldschoolemailhost.com";
public static void send(String recipient, String subject, String text) throws AddressException, MessagingException {
Properties properties = System.getProperties();
properties.setProperty("mail.smtp.host", SMTP_HOST);
properties.setProperty("mail.smtp.port", String.valueOf(SMTP_PORT));
properties.setProperty("mail.smtp.auth", "true");
Session session = Session.getDefaultInstance(properties, new MailAuthenticator(USERNAME, PASSWORD));
MimeMessage msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(EMAIL));
msg.setRecipients(Message.RecipientType.TO,
InternetAddress.parse(recipient, false));
msg.setSubject(subject);
msg.setText(text);
Transport.send(msg);
}
}
class MailAuthenticator extends Authenticator {
private final String user;
private final String password;
public MailAuthenticator(String user, String password) {
this.user = user;
this.password = password;
}
@Override
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(user, password);
}
}
Something special about this code is the MailAuthenticator. You normally don’t write an extra class for this, but it makes the code more readable I think.
Then you can call this class everywhere like that:
String recipient = "bobama@me.com";
String subject = "topic";
String text = "smile =)";
Mail.send(recipient, subject, text);
And thats it, it’s really easier then I expected. Try it out =).
Recent Comments