Программа Java Mail не работает - PullRequest
2 голосов
/ 22 февраля 2010

У меня нижеуказанная почтовая программа. Проблема в том, что почтовая программа работает успешно, но она не отправляет мне письма. Журналы говорят, что это отправлено успешно. Не уверен, в чем может быть проблема. Нужно ли менять Java-программу?

У меня есть следующие значения, установленные в файле application.properties, и эти значения считываются из программы и передаются как вектор в функцию отправки

mail.smtp.host=excha.testing.com
mail.smtp.techEmail="test1@test.com"
mail.smtp.toEmail="test2@test.com"
mail.smtp.fromEmail=test_systems@test.com
mail.smtp.fromName=Testing test Systems
mailHandler.send(mailingAddress,ccEmailAddress,fromEmailAddress,fromEmailAlias,envName + "::" + " Process", exitMessage + " - " + message))

----------------------- Код программы отправки почты, вставленный ниже ---------

public synchronized boolean send(Vector eMailAddress, Vector ccEmailAddress, String 
fromEmailAddress, String fromEmailAlias, String messageSubject, String messageText)
  {



    try
    {
      Message msg = new MimeMessage(session);
      msg.setSubject(messageSubject);
      msg.setText(messageText);

      InternetAddress addresses[] = new InternetAddress[eMailAddress.size()];
      for (int i = 0; i < eMailAddress.size(); i++ ) {
        addresses[i] = new InternetAddress((String)(eMailAddress.elementAt(i)));
 }
      msg.setRecipients(Message.RecipientType.TO, addresses);

      InternetAddress ccAddresses[] = new InternetAddress[ccEmailAddress.size()];
      for (int i = 0; i < ccEmailAddress.size(); i++ ) {
        ccAddresses[i] = new InternetAddress((String)(ccEmailAddress.elementAt(i)));
 }
      msg.setRecipients(Message.RecipientType.CC, ccAddresses);

      if ((null != fromEmailAddress) && (null != fromEmailAlias))
      {
       msg.setFrom(new InternetAddress(fromEmailAddress, fromEmailAlias));
      } 
      else if ((null != fromEmailAddress) && (null == fromEmailAlias))
      {
       msg.setFrom(new InternetAddress(fromEmailAddress));
      }
      else if ((null == fromEmailAddress) && (null == fromEmailAlias))
      {
       String smtpFromEmail
            = (ApplicationProperties.getApplicationProperties()).getProperty(SMTP_FROM_EMAIL_KEY);
       String smtpFromName
            = (ApplicationProperties.getApplicationProperties()).getProperty(SMTP_FROM_NAME_KEY);
       if (null == smtpFromEmail || "".equals(smtpFromEmail))
       {
         smtpFromEmail = SENDER_EMAIL;
       }
       if (null == smtpFromName || "".equals(smtpFromName))
       {
         smtpFromName = SENDER_NAME;
       }
       msg.setFrom(new InternetAddress(smtpFromEmail, smtpFromName));
      }

      Transport.send(msg);
      cat.debug("Sent message to " + eMailAddress);
      return true;
    } catch (Exception e)
    {
      cat.error("Error sending email", e);
      return false;
    }
  }

1 Ответ

2 голосов
/ 22 февраля 2010

Для отправки почты с помощью Java Mail вам нужен действующий SMTP-сервер и учетная запись на этом сервере.

Я предполагаю, что сервер excha.testing.com просто проглатывает все, что вы ему отправляете, в противном случае я не вижу причины, по которой ваша программа не работает.

Приветствие.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...