0

javax.mail.jar を使用してメールを送信すると、(SMTP ホストに接続できませんでした) エラーが発生します。smtp.gmail.com からメールを送信できますが、会社のメール サーバーに接続しようとするとエラーが発生します。telnet から試したところ、telnet からメールを送信できました。同じメール サーバー (IP とポート) を使用してメールを送信している別の Python プログラムも実行されています。バグジラ サーバーも同じ IP とポートで実行されており、正常に動作しています。メールを送信します。SMTPアペンダーを介してjavaとlog4jから同じ構成を試みましたが、成功しませんでした。

私を導いてください。

前もって感謝します

以下の私のコード -

    private Session getSession()
{
  Authenticator authenticator = new Authenticator();
  Properties properties = new Properties();
  properties.setProperty("mail.smtp.submitter", authenticator
   .getPasswordAuthentication().getUserName());
  properties.setProperty("mail.smtp.auth", "true");
  properties.put("mail.smtp.socketFactory.port", "25");
  //properties.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory");
  properties.setProperty("mail.smtp.starttls.enable", "true");
  properties.setProperty("mail.smtp.host", smtpServer);
  properties.setProperty("mail.smtp.port", smtpPort);

  return Session.getInstance(properties, authenticator);
}

private class Authenticator extends javax.mail.Authenticator
{
  private final javax.mail.PasswordAuthentication authentication;
  public Authenticator()
  {
    authentication =
        new javax.mail.PasswordAuthentication(username, password);
  }
@Override
protected javax.mail.PasswordAuthentication getPasswordAuthentication()
{
  return authentication;
}
}

public boolean sendEmail() throws MessagingException
{
    boolean isSuccess = false;
    String setBody = "";
    String setSubject = "";
    try
    {
        Message message = new MimeMessage(getSession());
        setReceipients(message);
        message.addFrom(new InternetAddress[]
        { new InternetAddress(emailFrom, "Notification") });
        setSubject = emailSubject;
        message.setSubject(setSubject);
        setBody = emailBody + "\nThis is a System Generated Mail";
        message.setContent(setBody, "text/plain");
        Transport.send(message);
        log.info("Mail Sent Successfully to - " + emailTo);
        isSuccess = true;
    }
    catch (UnsupportedEncodingException ex)
    {
        log.error("Error in sending Mail without Attachment- "
            + ex.getMessage());
        log.warn("Mail Sending Failed for Mail ID:" + emailTo);
    }
    catch (SendFailedException e)
    {
        log.error("Invalid Addresses \"" + emailTo + "\" specified:"
            + e.getMessage());
        log.warn("Mail Sending Failed for Mail ID:" + emailTo);
    }
    catch (Exception e)
    {
        log.error("Error in sending Mail without Attachment- "
        + e.getMessage());
            log.warn("Mail Sending Failed for Mail ID:" + emailTo);
    }
    return isSuccess;
    }
4

1 に答える 1

0

JavaMail FAQ にデバッグのヒントがあります

JavaMail からのデバッグ出力を確認すると役立ちます。

ポート 25 をブロックしているファイアウォールまたはウイルス対策プログラムを使用している可能性があります。

于 2013-10-25T07:26:24.393 に答える