javax.mail简单使用

221 阅读1分钟

使用步骤

1、email.properties

mail.smtp.socketFactory.fallback=false
mail.smtp.protocol=smtp
mail.smtp.host=
mail.smtp.port=25
mail.smtp.socketFactory.port=25
mail.smtp.auth=true
mail.default.userName=
mail.default.password=

mail.send.count=1
mail.send.sessionId=1

2、pom.xml

<dependency>
    <groupId>javax.mail</groupId>
    <artifactId>mail</artifactId>
    <version>1.4.7</version>
</dependency>

3、简单封装和测试 JavaxMail.java

import java.util.Properties;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSenderImpl;

public class JavaxMail {
	/** 日志 **/
	private static final Log log = LogFactory.getLog(JavaxMail.class);
	private static Properties PROPERTIES = TrainUtils.loadProperties("email.properties");
	private static Properties props = new Properties();
	private JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
	static {
		props.setProperty("mail.smtp.protocol", PROPERTIES.getProperty("mail.smtp.protocol"));
		props.setProperty("mail.smtp.host", PROPERTIES.getProperty("mail.smtp.host"));
		props.setProperty("mail.smtp.port", PROPERTIES.getProperty("mail.smtp.port"));
		props.setProperty("mail.smtp.socketFactory.port", PROPERTIES.getProperty("mail.smtp.socketFactory.port"));
		props.put("mail.smtp.auth", PROPERTIES.getProperty("mail.smtp.auth"));
	}

	private String userName;
	private String password;
	private String host;

	public JavaxMail() {
		this.userName = PROPERTIES.getProperty("mail.default.userName");
		this.password = PROPERTIES.getProperty("mail.default.password");
		this.host = PROPERTIES.getProperty("mail.smtp.host");
		init();
	}

	public JavaxMail(String userName, String password, String host) {
		this.userName = userName;
		this.password = password;
		this.host = host;
		init();
	}

	private void init() {
		mailSender.setHost(this.host);
		mailSender.setUsername(this.userName);
		mailSender.setPassword(this.password);
                mailSender.setJavaMailProperties(props);
	}

	public static void main(String[] agrs) {
		// System.setProperty("java.net.preferIPv4Stack", "true");
		JavaxMail mail = new JavaxMail();
		mail.send("1006435994@qq.com", "测试邮件标题<", "测试邮件内容");
	}

	public boolean send(String to_email, String subject, String content) {
		try {
			// 创建邮件内容
			SimpleMailMessage message = new SimpleMailMessage();
			message.setFrom(PROPERTIES.getProperty("mail.default.userName"));
			message.setTo(to_email);
			message.setSubject(subject);
			message.setText(content);
			// 发送邮件
			mailSender.send(message);
			log.info("发送成功");
			return true;
		} catch (Exception e) {
			e.printStackTrace();
			log.info("发送失败");
			return false;
		}

	}

}