All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.blazebit.mail.util.MailUtils Maven / Gradle / Ivy

/*
 * Copyright 2011 Blazebit
 */
package com.blazebit.mail.util;

import com.blazebit.mail.Mail;
import com.blazebit.mail.MailException;
import com.blazebit.mail.MailSender;
import com.blazebit.mail.MailTransport;
import com.blazebit.mail.impl.SimpleMailSender;
import java.io.File;
import java.io.IOException;
import javax.mail.MessagingException;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;

/**
 * 
 * @author Christian Beikov
 * @since 0.1.2
 */
public class MailUtils {

	public static boolean validate(Mail email) throws MailException {
		if (email.getText() == null && email.getHtml() == null) {
			throw new MailException(MailException.MISSING_CONTENT);
		} else if (email.getSubject() == null || email.getSubject().equals("")) {
			throw new MailException(MailException.MISSING_SUBJECT);
		} else if (email.getTo().isEmpty() && email.getBcc().isEmpty()
				&& email.getCc().isEmpty()) {
			throw new MailException(MailException.MISSING_RECIPIENT);
		} else if (email.getFrom() == null) {
			throw new MailException(MailException.MISSING_SENDER);
		} else {
			String exceptionMessage = null;

			try {
				exceptionMessage = MailException.INVALID_SENDER;
				email.getFrom().validate();

				if (email.getReplyTo() != null) {
					exceptionMessage = MailException.INVALID_REPLYTO;
					email.getReplyTo().validate();
				}

				exceptionMessage = MailException.INVALID_TO;

				for (InternetAddress a : email.getTo()) {
					a.validate();
				}

				exceptionMessage = MailException.INVALID_BCC;

				for (InternetAddress a : email.getBcc()) {
					a.validate();
				}

				exceptionMessage = MailException.INVALID_CC;

				for (InternetAddress a : email.getCc()) {
					a.validate();
				}
			} catch (AddressException ex) {
				throw new MailException(String.format(exceptionMessage, email),
						ex);
			}
		}

		return true;
	}

	public static void sendMessage(String host, Integer port,
			boolean trustAllCertificates, boolean secure, String from,
			String[] to, String subject, String text) throws MessagingException {
		sendMessage(host, port, null, null, trustAllCertificates, secure, from,
				to, subject, text);
	}

	public static void sendMessage(String host, Integer port, String user,
			String password, boolean trustAllCertificates, boolean secure,
			String from, String[] to, String subject, String text)
			throws MessagingException {
		sendMessage(host, port, user, password, trustAllCertificates, secure,
				from, to, subject, text, null);
	}

	public static void sendMessage(String host, Integer port, String user,
			String password, boolean trustAllCertificates, boolean secure,
			String from, String[] to, String subject, String text, String html)
			throws MessagingException {
		sendMessage(host, port, user, password, trustAllCertificates, secure,
				createMessage(from, to, subject, text, html));
	}

	public static void sendMessage(String host, Integer port, String user,
			String password, boolean trustAllCertificates, boolean secure,
			String from, String[] to, String subject, String text, String html,
			File[] attachments) throws MessagingException, IOException {
		sendMessage(host, port, user, password, trustAllCertificates, secure,
				createMessage(from, to, subject, text, html, attachments));
	}

	public static void sendMessage(String host, Integer port, String user,
			String password, boolean trustAllCertificates, boolean secure,
			Mail m) throws MessagingException {

		MailTransport t = secure ? MailTransport.SMTPS : MailTransport.SMTP;
		t.setTrustAllHosts(trustAllCertificates);
		sendMessage(host, port, user, password, t, m);
	}

	public static void sendMessage(String host, Integer port, String user,
			String password, MailTransport t, Mail m) throws MessagingException {

		MailSender sender = new SimpleMailSender(host, port, user, password, t);
		sender.sendMail(m);
	}

	public static Mail createMessage(String from, String[] to, String subject,
			String text, String html) {

		Mail m = new Mail();
		m.setFrom(from);
		m.addTo(to);
		m.setSubject(subject);
		m.setText(text);
		m.setHtml(html);
		return m;
	}

	public static Mail createMessage(String from, String[] to, String subject,
			String text, String html, File[] attachments) throws IOException {

		Mail m = createMessage(from, to, subject, text, html);
		m.addAttachment(attachments);
		return m;
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy