How to send an email from Outlook via Java?

25,181

You can send emails through outlook with javamail use the configurations described on Outlook's official site.

Here is small demo code

import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;

public static void main(String[] args) {
    final String username = "your email";  // like [email protected]
    final String password = "*********";   // password here

    Properties props = new Properties();
    props.put("mail.smtp.auth", "true");
    props.put("mail.smtp.starttls.enable", "true");
    props.put("mail.smtp.host", "smtp-mail.outlook.com");
    props.put("mail.smtp.port", "587");

    Session session = Session.getInstance(props,
      new javax.mail.Authenticator() {
        @Override
        protected PasswordAuthentication getPasswordAuthentication() {
            return new PasswordAuthentication(username, password);
        }
      });
    session.setDebug(true);

    try {

        Message message = new MimeMessage(session);
        message.setFrom(new InternetAddress(username));
        message.setRecipients(Message.RecipientType.TO,
            InternetAddress.parse("receiver mail"));   // like [email protected]
        message.setSubject("Test");
        message.setText("HI you have done sending mail with outlook");

        Transport.send(message);

        System.out.println("Done");

    } catch (MessagingException e) {
        throw new RuntimeException(e);
    }
}

.
Note: I tested this with Javamail API 1.5.6

Share:
25,181
Jenna Maiz
Author by

Jenna Maiz

Updated on July 09, 2022

Comments

  • Jenna Maiz
    Jenna Maiz almost 2 years

    I am stuck behind a corporate firewall that won't let me send email via conventional means such as Java Mail API or Apache Commons Email, even to other people inside the organization(which is all I want anyways). But my Outlook 2010 obviously can send these emails. I was wondering if there is a way to automate Outlook 2010 via Java code so that Outlook can send the emails ? I know stuff like "mailto" can be used pop-up the default Outlook send dialog with pre-populated info, but I am looking for a way to have the send operation happen behind the scenes. Thanks for any info.

  • Connor Gurney
    Connor Gurney over 7 years
    Wouldn't this start the Outlook GUI? That seems to be the opposite of what OP is looking for. Sorry I couldn't contribute more however.
  • JosefScript
    JosefScript over 7 years
    I think the OP did not mean to use Microsoft's email server, but Microsoft's email client program. Confusingly both are named 'outlook'.
  • Jeffrey Knight
    Jeffrey Knight almost 6 years
    import javax.mail.*; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import java.util.Properties;