两种使用方式:一是在HCM系统中通过配置邮件服务器实现;二是编写程序,调用标准的SMTP接口,传输邮件数据。
一、在HCM系统中配置邮件服务器,进入系统管理—参数设置—配置邮件服务器功能点进行如下配置即可。
其中,邮件回复地址需要自己指定,发送用户账号和密码是在阿里云邮件推送服务中建立的发信地址和对应的SMTP密码。
二、编写程序,调用标准的SMTP接口。
import javax.mail.*; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import java.util.Properties;
public class Mail { private static final String ALIDM_SMTP_HOST = "smtpdm.aliyun.com"; private static final int ALIDM_SMTP_PORT = 25;
public static void main(String[] args) throws MessagingException { // 配置发送邮件的环境属性 final Properties props = new Properties(); // 表示SMTP发送邮件,需要进行身份验证 props.put("mail.smtp.auth", "true"); props.put("mail.smtp.host", ALIDM_SMTP_HOST); //props.put("mail.smtp.port", ALIDM_SMTP_PORT); // 如果使用ssl,则去掉使用25端口的配置,进行如下配置, props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); props.put("mail.smtp.socketFactory.port", "465"); props.put("mail.smtp.port", "465");
// 发件人的账号 props.put("mail.user", "***@***.com"); // 访问SMTP服务时需要提供的密码 props.put("mail.password", "******");
// 构建授权信息,用于进行SMTP进行身份验证 Authenticator authenticator = new Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { // 用户名、密码 String userName = props.getProperty("mail.user"); String password = props.getProperty("mail.password"); return new PasswordAuthentication(userName, password); } }; // 使用环境属性和授权信息,创建邮件会话 Session mailSession = Session.getInstance(props, authenticator); // 创建邮件消息 MimeMessage message = new MimeMessage(mailSession); // 设置发件人 InternetAddress form = new InternetAddress( props.getProperty("mail.user")); message.setFrom(form);
// 设置收件人 InternetAddress to = new InternetAddress("***@neusoft.com"); message.setRecipient(MimeMessage.RecipientType.TO, to); // 设置邮件回复地址,阿里云邮件推送不提供类似企业邮箱的收信服务, // 但是可以通过设置回信地址,将回复到某个发信地址的邮件,转发到指定的 // 回信地址中 。 InternetAddress[] reply = {to}; message.setReplyTo(reply);
// 设置邮件标题 message.setSubject("测试邮件"); // 设置邮件的内容体 message.setContent("测试的HTML邮件", "text/html;charset=UTF-8");
// 发送邮件 Transport.send(message); } } |