0
我正在使用以下代码向多个用户发送邮件。 当所有邮件ID都正确或者真实时,一切正常。出现错误的邮件标识时出现问题。我添加了一个例外,但我希望当只有一个邮件标识错误时,邮件将被发送给其他用户。JavaMail失败地址问题
任何帮助appreaciated。我需要在同一封邮件中发送所有用户。
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();
}
}