需要依赖两个jar包:
activation.jar、mail.jar
import java.util.Properties;
import javax.mail.Address;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class SendMailUtil {
/**
* 发送邮件提醒.
*/
private void sendMail(final Map input){
final String[] jsryx = {"aaa@qq.com"};
final String content = "正文";
final String title = "主题";
LOG.info("邮件发送至"+jsryx[0]);
LOG.info("邮件内容"+content);
LOG.info("邮件主题"+title);
ITaxXtcsBizContext context = OSGiUtil.getService(ITaxXtcsBizContext.class);
final String host = context.findCszByCsmc("MAIL_HOST");
final String user = context.findCszByCsmc("MAIL_USERNAME");
final String password = context.findCszByCsmc("MAIL_PASSWORD");
LOG.info("邮件服务器host:"+host);
LOG.info("邮件服务器user:"+user);
LOG.info("邮件服务器password:"+password);
//配置文件,用于实例化java.mail.session
Properties pro = System.getProperties();
//登录SMTP服务器,需要获得授权,网易163邮箱新近注册的邮箱均不能授权。
pro.put("mail.smtp.auth", "true");
pro.put("mail.transport.protocol", "smtp");
pro.put("mail.host", host);
for(int i = 0; i < jsryx.length; i++){
Session session = Session.getInstance(pro);//根据属性新建一个邮件会话
MimeMessage message = new MimeMessage(session);//由邮件会话新建一个消息对象
try {
message.setFrom(new InternetAddress(user));//设置发件人的地址
message.setRecipient(Message.RecipientType.TO, new InternetAddress(jsryx[i]));//设置收件人,并设置其接收类型为TO
message.setSubject(title);//设置标题
message.setContent(content, "text/html; charset=utf-8"); //发送HTML邮件,内容样式比较丰富
message.setSentDate(new Date());//设置发信时间
message.saveChanges();//存储邮件信息
Transport transport = session.getTransport();
// 连接邮件服务器
transport.connect(host,user, password);
// 发送邮件
transport.sendMessage(message, new Address[] {new InternetAddress(jsryx[i])});
transport.close();
LOG.info("邮件发送成功");
} catch (Exception e) {
e.printStackTrace();
LOG.info("邮件发送失败"+ e);
}
}
}
}