2016-03-23 28 views
0

ローカルホストで実行している場合、Webアプリケーションから電子メールを送信できますが、リモートホストに展開するとできません。 どうすれば確認できますか?ローカルホストから送信されたメールはオンラインホストから送信できません

私はそれがJavaの問題ではないかもしれないが、誰かがそれを理解できることを願っています。

public void send() { 
     new Thread(new Runnable() { 

      @Override 
      public void run() { 
       Properties props = System.getProperties(); 
       props.put("mail.smtp.host", "103.20.XXX.XXX"); 
       props.put("mail.smtp.auth", "true"); 
       props.put("mail.smtp.port", "25"); 

       Session mailSession = Session.getDefaultInstance(props, null); 
       //mailSession.setDebug(true); 

       try { 
        Message mailMessage = new MimeMessage(mailSession); 
        mailMessage.setFrom(new InternetAddress(msgFrom, username)); 
        mailMessage.setRecipient(Message.RecipientType.TO, new InternetAddress(msgTo)); 
        mailMessage.setSubject(msgSubject); 
        mailMessage.setContent(msgBody, "text/html; charset=utf-8"); 
        Transport transport = mailSession.getTransport("smtp"); 
        transport.connect("103.20.XXX.XXX", username, password); 
        transport.sendMessage(mailMessage, mailMessage.getAllRecipients()); 
        transport.close(); 

       } catch (MessagingException | UnsupportedEncodingException e) { 
        e.printStackTrace(); 
       } 
      } 
     }).start(); 
    } 
+0

シェアログのトレース –

+0

ファイアウォールを確認してください – SpringLearner

+0

ファイアウォール/アクセスに関連する問題があるようです。 リモートホストからポート25のsmtpサーバにtelnet接続しようとすることができます(端末/ sshアクセスがある場合)。リモートホストにも依存関係がない可能性があります。ダークナイトのように、ログトレースも共有してください。 – Henkealg

答えて

0

リモートホストから、それはそのブロックあなたのファイアウォールルールのいくつかの種類であるほとんどのポート25 上のSMTPサーバーのIPへのアクセス権を持っていることを確認します。おかげで以下

はコードです。

はこれを確認するために、私は通常、リモートホストへの端子を接続して、あなたのようなエラーが出た場合

telnet <ip> <port> 

を実行します。

telnet: connect to address 127.0.0.1: Connection refused 
telnet: Unable to connect to remote host 

それは間違いなく接続の問題です。

関連する問題