#jakarta-mail
#джакарта-почта
Вопрос:
Я использую следующий код для отправки писем нескольким пользователям. Все работает нормально, когда все идентификаторы почты правильные или реальные. Проблема возникает, когда указан неправильный почтовый идентификатор. Я добавил исключение, но я ожидаю, что почта будет отправлена другим пользователям, когда неверен только один почтовый идентификатор.
Приветствуется любая помощь. Мне нужно отправить всем пользователям одну и ту же почту.
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)
amp;amp; (ccUsers == null || ccUsers.size() == 0))
return;
MimeMessagePreparator messagePreparator = new MimeMessagePreparator()
{
public void prepare(MimeMessage mimeMessage) throws Exception {
boolean multipartMode = false;
if ((attachedFilename!=null)
amp;amp; (attachedFilename.length()>0)
amp;amp; (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:
Установите mail.smtp.sendpartial
свойство, описанное в javadocs пакета com.sun.mail.smtp