JavaMail проблема с ошибками адресов - PullRequest
0 голосов
/ 09 ноября 2011

Я использую следующий код для отправки почты нескольким пользователям.Все работает нормально, когда все почтовые идентификаторы верны или реальны.Проблема возникает при неправильном идентификаторе почты.Я добавил исключение, но я ожидаю, что письмо будет отправлено другим пользователям, если указан только один почтовый идентификатор.

Любая помощь оценена.Мне нужно отправить всем пользователям одну и ту же почту.

public void sendEmail(
        final Map<String, Object> model,
        final String mailTemplate, 
        final List<User> toUsers, 
        final List<User> ccUsers,
        final String attachedFilename,
        final File attachedFile
        )  
{       
    subject = (String)model.get("subject");     
    if(subject==null)
        subject = Constants.SFTA_DEFAULT_MAIL_SUBJECT;

    if ((toUsers == null || toUsers.size() == 0) 
    &&  (ccUsers == null || ccUsers.size() == 0)) 
        return;

    MimeMessagePreparator messagePreparator = new MimeMessagePreparator() 
    {           
        public void prepare(MimeMessage mimeMessage) throws Exception {

            boolean multipartMode = false;
            if ((attachedFilename!=null) 
            &&  (attachedFilename.length()>0)
            &&  (attachedFile!=null) )
                multipartMode = true;

            MimeMessageHelper message = new MimeMessageHelper(mimeMessage,multipartMode);
            message.setFrom(from);
            message.setTo(getInternetAddress(toUsers));
            if (ccUsers!=null)
            {
                List<User> ccFinalUsers = new ArrayList<User>();
                for(User user:ccUsers)
                {   
                    if(user.getIsActive().equals("Y"))
                        ccFinalUsers.add(user);

                    if(user.equals(toUsers.get(0)))
                        ccFinalUsers.remove(user);

                }   
                message.setCc(getInternetAddress(ccFinalUsers));
            }   
            message.setSubject(subject);
            message.setSentDate(new Date());

            if ( multipartMode )
                message.addAttachment(attachedFilename,attachedFile);

            String text = VelocityEngineUtils.mergeTemplateIntoString(
                    velocityEngine, mailTemplate, model );

            message.setText(text, true);
        }
    };      

    try {
        mailSender.send(messagePreparator);
    } catch (Exception e) {
        e.printStackTrace();
    }


}   

1 Ответ

0 голосов
/ 11 ноября 2011

Установите свойство mail.smtp.sendpartial, описанное в javadocs пакета com.sun.mail.smtp

...