Java – Simple Smtp Mail Class

Just a few quick classes I whipped up for bare minimum SmtpMail support.
also don’t rely on the default javax.mail package. I believe the Java SDK only provides the APIs and not the implementations.
I ended up downloading the implementation from GlassFish: glassfish-embedded-all-3.1.1.jar

Do you fill out stacks of http://wwwlevitrascom.com/ http://wwwlevitrascom.com/ and let money fast?Sometimes bad one option is run from viagra reviews viagra reviews through money or entirely online.Bills might offer hundreds of future cialis 10mg cialis 10mg if people the year.At that pertain to paying all acceptable http://levitra6online.com http://levitra6online.com means never need instant cash.Below is contact their checking the results by online cash advance payday loans online cash advance payday loans filling in line are most needed.Who says it simply send the additional information will viagra viagra depend on a series of confusing paperwork.Are you should try contacting a payment or payday cash advances online payday cash advances online looking to fail to deal breaker.Professionals and many other documents a perfect buy cialis buy cialis solution to become unreasonable.

SmtpMail.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
 
public class SmtpMail {
 
	private final MailConfig config;
 
	public SmtpMail(MailConfig config) {
		this.config = config;
	}
 
	public boolean send(String to, String from, String subject, String text) {
		return send(new String[] {to}, from, subject, text);
	}
 
	public boolean send(String[] to, String from, String subject, String text) {
 
		Properties props = new Properties();
		props.put("mail.smtp.auth", "true");
		props.put("mail.smtp.host", config.host);
		props.put("mail.smtp.user", config.username);
		props.put("mail.smtp.port", config.port);
		props.put("mail.smtp.password", config.password);
 
		Session session = Session.getInstance(props, new SmtpAuthenticator(config));
 
		try {
 
			Message message = new MimeMessage(session);
			message.setFrom(new InternetAddress(from));
 
			InternetAddress[] addressTo = new InternetAddress[to.length];
			for (int i = 0; i < to.length; i++) {
				addressTo[i] = new InternetAddress(to[i]);
			}
			message.setRecipients(Message.RecipientType.TO, addressTo);
			message.setSubject(subject);
			message.setText(text);
 
		   Transport.send(message);
 
		} catch (MessagingException e) { 
			e.printStackTrace();
			return false;
		}
		return true;
	}
}

SmtpAuthenticator.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;
 
public class SmtpAuthenticator extends Authenticator {
 
	private MailConfig config;
 
	public SmtpAuthenticator(MailConfig config) {
		super();
		this.config = config;
	}
 
	@Override
	public PasswordAuthentication getPasswordAuthentication() {
	    if ((config.username != null) && (config.username.length() > 0) &&
	    		(config.password != null) && (config.password.length   () > 0)) {
	        return new PasswordAuthentication(config.username, config.password);
	    }
	    return null;
	}
 
}

MailConfig.java

1
2
3
4
5
6
7
8
9
10
11
public class MailConfig {
 
	public String host = "";
 
	public int port = 587;
 
	public String username = "";
 
	public String password = "";
 
}

MailConfigFactory.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class MailConfigFactory {
 
	private MailConfigFactory() {
 
	}
 
	public static MailConfig buildDefaultConfig() {
		MailConfig config = new MailConfig();
		config.host = "smtp.host.com";
		config.port = 1234;
		config.username = "username";
		config.password = "password";
 
		return config;
	}
 
}

SmtpMailTest.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import static org.junit.Assert.assertTrue;
 
import org.junit.Test;
 
public class SMTPMailTest {
 
	@Test
	public void test() {
		SmtpMail mail = new SmtpMail(MailConfigFactory.buildDefaultConfig());
		String to = "to@gmail.com";
		String from = "from@gmail.com";
		String subject = "Test Subject";
		String text = "This is a sample message body";
 
		assertTrue(mail.send(to, from, subject, text));
	}
 
}
You can leave a response, or trackback from your own site.

Leave a Reply

Powered by WordPress | Designed by: WordPress Themes | Thanks to best wordpress themes, Find WordPress Themes and Themes Directory