publicclassJavaMailSendingHandlerimplementsILocalEmailSendingHandler {
publicvoidsend(String to, String from, String subject, String content, String contentType)throwsException {
Properties props=newProperties();
props.put("mail.smtp.localhost", getHost(from));
String server=getSMTPServerByJNDI(getHost(to));
props.setProperty("mail.smtp.host", server);
Session session=Session.getInstance(props,null);
MimeMessage message=newMimeMessage(session);
message.setContent(content, contentType);
message.setSender(newInternetAddress(from));
message.setFrom(newInternetAddress(from));
message.setRecipient(RecipientType.TO,newInternetAddress(to));
message.setSubject(subject);
message.setHeader("Content-Type", contentType);
message.setHeader("Content-Transfer-Encoding","7bit");
SimpleDateFormat format=newSimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z");
message.setHeader("Date", format.format(newDate()));
Transport.send(message,newAddress[] {newInternetAddress(to) });
}
privateString getHost(String address) {
returnaddress.substringaddress.indexOf('@')+1);
}
//通过JNDI 查找给定域的邮件服务器。
privateString getSMTPServerByJNDI(String host)throwsException {
Properties jndiEnvironmentProperties=newProperties();
jndiEnvironmentProperties.put("java.naming.factory.initial","com.sun.jndi.dns.DnsContextFactory");
DirContext initialDirContext=newInitialDirContext(jndiEnvironmentProperties);
Attributes attributes=initialDirContext.getAttributes(host,newString[] {"MX"});
Attribute attribute=attributes.get("MX");
String[] servers=newString[attribute.size()];
for(inti=0; i<attribute.size(); i++) {
servers[i]=attribute.get(i).toString();
}
String server=servers[0];
server=server.substring(server.indexOf("")+1, servers[0].length()-1);
returnserver;
}
}
java mail send
最新推荐文章于 2025-05-15 16:25:36 发布
本文介绍了一个使用JavaMail API实现的邮件发送类JavaMailSendingHandler。该类实现了ILocalEmailSendingHandler接口,并提供了send方法来发送邮件。文章详细展示了如何配置邮件属性、创建会话、构造MimeMessage消息并发送邮件的过程。此外,还介绍了如何通过JNDI查找指定域名的SMTP服务器。
1011

被折叠的 条评论
为什么被折叠?



