2014-10-09 2 views
0

Мое приложение теперь работает в websphere 6.1 в AIX-блоке, в котором есть модуль уведомлений по электронной почте, который отлично работает до сегодняшнего дня. Это же приложение теперь переносится на облачную платформу Tomcat, которая работает на сервере Linux. Письма отправляются с новой платформы на базе Linux для предполагаемых получателей, но электронное письмо выглядит странно без каких-либо вопросов, нет адреса электронной почты получателя, вложения не являются надлежащими и т. Д.вопрос электронной почты с пружиной и java-почтой api

Раньше это была сборка на основе ant-based и теперь я строю проект с maven. И я попытался сохранить те же версии весенних и почтовых апй.

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

Generated Email with no to, subject, attachment код:

public synchronized void sendwithAttachment(MailMessage mailMessage) throws MailException, MessagingException { 
     String methodName = "sendwithAttachment"; 
    LogManager.info(LogConstants.NOTIFICATION, 
      Constants.ENTERING_METHOD + methodName, this.getClass()); 
    try{ 
     MailSender MailSender = (MailSender) mailSender; 
     Session session = MailSender.getSession(); 
     MimeMessageHelper message = new MimeMessageHelper(new MimeMessage(session), true, "UTF-8"); 
     message.setFrom(mailMessage.getFrom()); 
      message.setTo(mailMessage.getTo()); 
       message.setSubject(mailMessage.getSubject()); 
     message.setSentDate(new Date()); 
     message.setText(mailMessage.getText()); 

     DiskFileAttacher[] diskFileAttachments = mailMessage.getDiskFileAttachments(); 
     for (int i = 0; ((diskFileAttachments != null) && i < diskFileAttachments.length); i++) { 
      message.addAttachment(diskFileAttachments[i].getAttachmentFilename(), new File(diskFileAttachments[i].getFilePath())); 
     } 
     InMemoryFileAttacher[] inMemoryFileAttachments = mailMessage.getInMemoryFileAttachments(); 
     for (int i = 0; ((inMemoryFileAttachments != null) && i < inMemoryFileAttachments.length); i++) { 
      if(inMemoryFileAttachments[i].getFileObj()!=null){ 
      message.addAttachment(inMemoryFileAttachments[i].getFileName(), 
        inMemoryFileAttachments[i].getFileObj()); 
      }else{ 
      message.addAttachment(inMemoryFileAttachments[i].getFileName(), 
        inMemoryFileAttachments[i]); 
      } 
     } 
     List mimeMessageList = new ArrayList(); 
     mimeMessageList.add(message.getMimeMessage()); 
     MimeMessage[] mimeMessages = (MimeMessage[]) mimeMessageList.toArray(new MimeMessage[mimeMessageList.size()]); 
     LogManager.info(LogConstants.NOTIFICATION,"before MailSender.send is called " + methodName, this.getClass()); 
     MailSender.send(mimeMessages); 
    }catch(MailException e){ 
     LogManager.info(LogConstants.NOTIFICATION, "Some exception occured while sending emails...", this.getClass()); 
} 

ответ

0

Проверьте, какая версия JavaMail вы используете. Если вы добавляете файл jar JavaMail в приложение, также может быть копия GNU-версии JavaMail в вашей системе Linux, которая используется вместо вашей. Найдите пакет libgnumail-java.

+0

Спасибо, Билл за ответ. Эта проблема относительно похожа на другую почтовую банку с зависимостями maven, и теперь она разрешена. – kumar

0

Я нашел проблему и разрешил это. Я включаю зависимость maven для банок с аксиомой, которая также имеет зависимость от «geronimo-javamail_1.4_spec», и эти почтовые банки geronimo java также загружаются. И при отправке писем эта почта geronimo api использовалась вместо оригинальной java-почты api. Я добавил исключения, и теперь он разрешен.

Смежные вопросы