javaemailtomcatservlets

How do I send an e-mail in Java?


I need to send e-mails from a servlet running within Tomcat. I'll always send to the same recipient with the same subject, but with different contents.

What's a simple, easy way to send an e-mail in Java?

Related:

How do you send email from a Java app using GMail?


Solution

  • Here's my code for doing that:

    import javax.mail.*;
    import javax.mail.internet.*;
    
    // Set up the SMTP server.
    java.util.Properties props = new java.util.Properties();
    props.put("mail.smtp.host", "smtp.myisp.com");
    Session session = Session.getDefaultInstance(props, null);
    
    // Construct the message
    String to = "you@you.com";
    String from = "me@me.com";
    String subject = "Hello";
    Message msg = new MimeMessage(session);
    try {
        msg.setFrom(new InternetAddress(from));
        msg.setRecipient(Message.RecipientType.TO, new InternetAddress(to));
        msg.setSubject(subject);
        msg.setText("Hi,\n\nHow are you?");
    
        // Send the message.
        Transport.send(msg);
    } catch (MessagingException e) {
        // Error.
    }
    

    You can get the JavaMail libraries from Sun here