Scenario:

How to use JavaMail API to send authenticated SMTP Emails?
How to use JavaMail with MX Outbound as the SMTP Provider?

Solution:

The example code below shows how to use the JavaMail API to send emails using MX Outbound as the SMTP Provider for email delivery.

import java.io.*;
import java.util.*;
import javax.activation.*;
import javax.mail.*;
import javax.mail.internet.*;

public class SendEmail {
	public static void main(String[] args) {
		// SMTP Server Details
		final String hostServer   = "mxoXXXX.mxtools.co.uk";
		final String hostPort     = "25";
		final String hostUsername = "mxo-username";
		final String hostPassword = "mxo-password";

		// Recipient's Email Address
		String toEmail            = "This email address is being protected from spambots. You need JavaScript enabled to view it.";
		
		// Sender's Email Address
		String fromEmail          = "This email address is being protected from spambots. You need JavaScript enabled to view it."; 
		String fromEmailName      = "Firstname Lastname"; 
		
		// Set the email properties
		Properties props = new Properties();
		props.put("mail.smtp.host", hostServer);		// SMTP Host
		props.put("mail.smtp.port", hostPort); 			// SMTP Port
		props.put("mail.smtp.auth", "true"); 			// SMTP Authentication Enabled
		
		// If you don't want a TLS session then comment out the below line
		props.put("mail.smtp.starttls.enable", "true"); // Enable STARTTLS
		
		// Create an authenticator object 
		Authenticator auth = new Authenticator() {
			//override the getPasswordAuthentication method
			protected PasswordAuthentication getPasswordAuthentication() {
				return new PasswordAuthentication(hostUsername, hostPassword);
			}
		};
		
		// Create the Session
		Session session = Session.getInstance(props, auth);
		
		try
	    {
			// Create the MIME Message and compose the message
			MimeMessage msg = new MimeMessage(session);
			
			// Set message headers
			msg.addHeader("Content-type", "text/HTML; charset=UTF-8");
			msg.addHeader("Content-Transfer-Encoding", "8bit");
			msg.setSentDate(new Date());

			// Add the Senders information
			msg.setFrom(new InternetAddress(fromEmail, fromEmailName));
			msg.setReplyTo(InternetAddress.parse(fromEmail, false));

			// Add the subject 
			msg.setSubject("Subject of the email goes here", "UTF-8");

			// Add the message bosy
			msg.setText("Body of the message goes here", "UTF-8");
			
			// Add the Recipients
			msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(toEmail, false));

			// Send the message
			Transport.send(msg);  

			System.out.println("EMail Sent Successfully!!");
	    }
	    catch (Exception e) {
			e.printStackTrace();
	    }
	}
}

 

Summary of server details

Outgoing server

As provided.
Please see your sign up email
mxo9999.mxtools.co.uk

Outgoing server protocol

SMTP

Outgoing server port

25, 465, 587, 2525, 8025 or 10025

Authentication Type

Basic Authentication
TLS/SSL

Username

As provided

Password

As provided