2

以下のメールプログラムがあります。問題は、メールプログラムが正常に実行されても、メールが送信されないことです。ログには、正常にメール送信されたことが示されています。何が問題なのかわからない。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;
    }
  }
4

1 に答える 1

2

Java Mailを使用してメールを送信するには、有効なSMTPサーバーとそのサーバーのアカウントが必要です。

excha.testing.comのサーバーは、送信されたものをすべて飲み込んでいると思います。そうしないと、プログラムが機能しない理由がわかりません。

乾杯。

于 2010-02-22T01:57:51.880 に答える