Search in sources :

Example 16 with Address

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;
}
Also used : MimeBodyPart(javax.mail.internet.MimeBodyPart) BodyPart(javax.mail.BodyPart) InternetAddress(javax.mail.internet.InternetAddress) MimeMultipart(javax.mail.internet.MimeMultipart) Multipart(javax.mail.Multipart) Message(javax.mail.Message) MimeMessage(javax.mail.internet.MimeMessage) Address(javax.mail.Address) InternetAddress(javax.mail.internet.InternetAddress) MessagingException(javax.mail.MessagingException) Properties(java.util.Properties) Date(java.util.Date) MimeMessage(javax.mail.internet.MimeMessage) MimeMultipart(javax.mail.internet.MimeMultipart) MimeBodyPart(javax.mail.internet.MimeBodyPart) Session(javax.mail.Session)

Example 17 with Address

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;
}
Also used : MailAddress(org.apache.mailet.MailAddress) Address(javax.mail.Address) MailAddress(org.apache.mailet.MailAddress) InternetAddress(javax.mail.internet.InternetAddress) NHINDAddress(org.nhindirect.stagent.NHINDAddress) Collection(java.util.Collection) Vector(java.util.Vector)

Example 18 with Address

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;
}
Also used : InternetAddress(javax.mail.internet.InternetAddress) Address(javax.mail.Address) MailAddress(org.apache.mailet.MailAddress) InternetAddress(javax.mail.internet.InternetAddress) NHINDAddress(org.nhindirect.stagent.NHINDAddress) MessagingException(javax.mail.MessagingException)

Example 19 with Address

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;
}
Also used : InternetAddress(javax.mail.internet.InternetAddress) Address(javax.mail.Address) MailAddress(org.apache.mailet.MailAddress) InternetAddress(javax.mail.internet.InternetAddress) NHINDAddress(org.nhindirect.stagent.NHINDAddress) MessagingException(javax.mail.MessagingException)

Example 20 with Address

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;
}
Also used : NHINDAddress(org.nhindirect.stagent.NHINDAddress) MailAddress(org.apache.mailet.MailAddress) AddressSource(org.nhindirect.stagent.AddressSource) Address(javax.mail.Address) MailAddress(org.apache.mailet.MailAddress) InternetAddress(javax.mail.internet.InternetAddress) NHINDAddress(org.nhindirect.stagent.NHINDAddress) NHINDAddressCollection(org.nhindirect.stagent.NHINDAddressCollection)

Aggregations

Address (javax.mail.Address)86 InternetAddress (javax.mail.internet.InternetAddress)66 MessagingException (javax.mail.MessagingException)34 MimeMessage (javax.mail.internet.MimeMessage)32 JavaMailInternetAddress (com.zimbra.common.mime.shim.JavaMailInternetAddress)21 ArrayList (java.util.ArrayList)19 Date (java.util.Date)19 MimeBodyPart (javax.mail.internet.MimeBodyPart)13 Account (com.zimbra.cs.account.Account)12 ZMimeMessage (com.zimbra.common.zmime.ZMimeMessage)10 IOException (java.io.IOException)9 Locale (java.util.Locale)9 ItemId (com.zimbra.cs.service.util.ItemId)8 Header (javax.mail.Header)8 NHINDAddress (org.nhindirect.stagent.NHINDAddress)8 Message (javax.mail.Message)7 MimeMultipart (javax.mail.internet.MimeMultipart)7 ZVCalendar (com.zimbra.common.calendar.ZCalendar.ZVCalendar)6 Invite (com.zimbra.cs.mailbox.calendar.Invite)6 Properties (java.util.Properties)6