use of javax.mail.Address in project Axe by DongyuCai.
the class SimpleMailSender method sendHtmlMail.
/**
* 以HTML格式发送邮件
*
* @param mailInfo
* 待发送的邮件信息
*/
public static boolean sendHtmlMail(MailSenderInfo mailInfo) {
// 判断是否需要身份认证
MyAuthenticator authenticator = null;
Properties pro = mailInfo.getProperties();
// 如果需要身份认证,则创建一个密码验证器
if (mailInfo.isValidate()) {
authenticator = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword());
}
// 根据邮件会话属性和密码验证器构造一个发送邮件的session
Session sendMailSession = Session.getDefaultInstance(pro, authenticator);
try {
// 根据session创建一个邮件消息
Message mailMessage = new MimeMessage(sendMailSession);
// 创建邮件发送者地址
Address from = new InternetAddress(mailInfo.getFromAddress());
// 设置邮件消息的发送者
mailMessage.setFrom(from);
// 创建邮件的接收者地址,并设置到邮件消息中
Address to = new InternetAddress(mailInfo.getToAddress());
// Message.RecipientType.TO属性表示接收者的类型为TO
mailMessage.setRecipient(Message.RecipientType.TO, to);
// 设置邮件消息的主题
mailMessage.setSubject(mailInfo.getSubject());
// 设置邮件消息发送的时间
mailMessage.setSentDate(new Date());
// MiniMultipart类是一个容器类,包含MimeBodyPart类型的对象
Multipart mainPart = new MimeMultipart();
// 创建一个包含HTML内容的MimeBodyPart
BodyPart html = new MimeBodyPart();
// 设置HTML内容
html.setContent(mailInfo.getContent(), "text/html; charset=utf-8");
mainPart.addBodyPart(html);
// 将MiniMultipart对象设置为邮件内容
mailMessage.setContent(mainPart);
// 发送邮件
Transport.send(mailMessage);
return true;
} catch (MessagingException ex) {
ex.printStackTrace();
}
return false;
}
use of javax.mail.Address in project nhin-d by DirectProject.
the class RecipAndSenderIsNotLocal method match.
/**
* {@inheritDoc}
*/
@SuppressWarnings("unchecked")
@Override
public Collection<MailAddress> match(Mail mail) throws MessagingException {
String domain = "";
if (mail.getSender() != null && mail.getSender().getDomain() != null)
domain = mail.getSender().getDomain().toUpperCase(Locale.getDefault());
else {
Address[] senderAddr = mail.getMessage().getFrom();
if (senderAddr != null && senderAddr.length > 0) {
domain = NHINDAddress.getHost((InternetAddress) senderAddr[0]).toUpperCase(Locale.getDefault());
}
}
if (!domains.contains(domain)) {
// this is from a remote domain... this auto qualifies all recipients
LOGGER.debug("Sender is remote. Return all recipients as matching");
return mail.getRecipients();
}
// the sender is local, so only return recipients that are not local
LOGGER.debug("Sender is local. Matching non local recipients.");
Collection<MailAddress> matching = new Vector<MailAddress>();
for (MailAddress addr : (Collection<MailAddress>) mail.getRecipients()) {
if (!domains.contains(addr.getDomain().toUpperCase(Locale.getDefault()))) {
LOGGER.debug("Matched recipient " + addr.toString());
matching.add(addr);
}
}
return matching;
}
use of javax.mail.Address in project nhin-d by DirectProject.
the class NHINDSecurityAndTrustMailet method getSender.
public static InternetAddress getSender(Mail mail) {
InternetAddress retVal = null;
if (mail.getSender() != null)
retVal = mail.getSender().toInternetAddress();
else {
// try to get the sender from the message
Address[] senderAddr = null;
try {
if (mail.getMessage() == null)
return null;
senderAddr = mail.getMessage().getFrom();
if (senderAddr == null || senderAddr.length == 0)
return null;
} catch (MessagingException e) {
return null;
}
// not the best way to do this
retVal = (InternetAddress) senderAddr[0];
}
return retVal;
}
use of javax.mail.Address in project nhin-d by DirectProject.
the class AbstractNotificationAwareMailet method getSender.
/**
* Gets the sender attribute of a Mail message
* @param mail The message to retrive the sender from
* @return The message sender.
*/
public static InternetAddress getSender(Mail mail) {
InternetAddress retVal = null;
if (mail.getSender() != null)
retVal = mail.getSender().toInternetAddress();
else {
// try to get the sender from the message
Address[] senderAddr = null;
try {
if (mail.getMessage() == null)
return null;
senderAddr = mail.getMessage().getFrom();
if (senderAddr == null || senderAddr.length == 0)
return null;
} catch (MessagingException e) {
return null;
}
// not the best way to do this
retVal = (InternetAddress) senderAddr[0];
}
return retVal;
}
use of javax.mail.Address in project nhin-d by DirectProject.
the class AbstractNotificationAwareMailet method getMailRecipients.
/**
* Get the recipients of Mail message by retrieving the recipient list from the SMTP envelope first, then falling back to the recipients
* in the message if the recipients cannot be retrieved from the SMTP envelope.
* @param mail The mail object that contains information from the SMTP envelope.
* @return Collection of message recipients.
* @throws MessagingException
*/
@SuppressWarnings("unchecked")
protected NHINDAddressCollection getMailRecipients(Mail mail) throws MessagingException {
final NHINDAddressCollection recipients = new NHINDAddressCollection();
// uses the RCPT TO commands
final Collection<MailAddress> recips = mail.getRecipients();
if (recips == null || recips.size() == 0) {
// fall back to the mime message list of recipients
final Address[] recipsAddr = mail.getMessage().getAllRecipients();
for (Address addr : recipsAddr) {
recipients.add(new NHINDAddress(addr.toString(), (AddressSource) null));
}
} else {
for (MailAddress addr : recips) {
recipients.add(new NHINDAddress(addr.toString(), (AddressSource) null));
}
}
return recipients;
}
Aggregations