2017-05-09 21 views
0

をホストするルートがない私は、メール送信のためのアプリケーションを作成するためのチュートリアルの多くを試みたが、すべてのコードが同じエラーがスローされます。javax.mail.MessagingException:SMTPホストに接続できませんでした:smtp.gmail.com、ポート:587; java.net.NoRouteToHostException:

javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 587; nested exception is: java.net.NoRouteToHostException: No route to host (Host unreachable)

私はUbuntuの16.04とEclipse Neon.1aを使用リリース(4.6.1)

これは私のコードです:

import java.util.*; 
import javax.mail.*; 
import javax.mail.internet.*; 
import javax.mail.internet.MimeMessage; 

public class SendEmail { 

public static void main(String args[]){ 
    try{ 
     String host ="smtp.gmail.com" ; 
     String user = "[email protected]"; 
     String pass = "myPassword"; 
     String to = "[email protected]"; 
     String from = "[email protected]"; 
     String subject = "My first email"; 
     String messageText = "Some text"; 
     boolean sessionDebug = false; 

     Properties props = System.getProperties(); 

     props.put("mail.smtp.starttls.enable", "true"); 
     props.put("mail.smtp.host", host); 
     props.put("mail.smtp.port", "587"); 
     props.put("mail.smtp.auth", "true"); 
     props.put("mail.smtp.starttls.required", "true"); 

     //java.security.Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider()); 
     Session mailSession = Session.getDefaultInstance(props, null); 
     mailSession.setDebug(sessionDebug); 
     Message msg = new MimeMessage(mailSession); 
     msg.setFrom(new InternetAddress(from)); 
     InternetAddress[] address = {new InternetAddress(to)}; 
     msg.setRecipients(Message.RecipientType.TO, address); 
     msg.setSubject(subject); msg.setSentDate(new Date()); 
     msg.setText(messageText); 

     Transport transport=mailSession.getTransport("smtp"); 
     transport.connect(host, user, pass); 
     transport.sendMessage(msg, msg.getAllRecipients()); 
     transport.close(); 
     System.out.println("message send successfully"); 
    }catch(Exception ex) 
    { 
     System.out.println(ex); 
    } 
}} 

私は多分追加のソフトウェア、または何か他のものをインストールする必要がありますか?

UPDATE:

問題は私の無線ルータのどこかにあります。

私は携帯電話でホットスポット経由でモバイル(3G)インターネットを使用しました。

誰かがルータの設定を経験している場合、問題を解決できるようになりました。

+0

はあなたから 'ピングsmtp.gmail.com'することができ、あなたがGoogleのメールサーバに到達し得ることができないようですあなたのコンピュータ? –

+0

は、クライアントマシン上のファイアウォールで、発信コールをブロックしたり、相手先のどこかでブロックしたりする可能性があります。詳細はこちらをご覧ください。https://coderanch.com/t/476146/java/SMTP-Send-Email-Java-Mail –

+0

申し訳ありませんが、私はよく理解しませんでした。「ping smtp.gmail」とはどういう意味ですか? com '? – elano7

答えて

0

発信コールをブロックするファイアウォールである可能性があります。ファイアウォールはクライアント側またはサーバー側のいずれかになります。

+0

と私はそれを避けるために何ができますか?私はこのコマンド 'ping smtp.gmail.com'を試して、この結果を得ました: 'PING gmail-smtp-msa.l.google.com(74.125.133.108)56(84)バイトのデータ。 64バイトのwoinf108.1e100.net(74.125.133.108):icmp_seq = 1 ttl = 41 time = 56.5 ms --- gmail-smtp-msa.l.google.com ping statistics ---送信された25パケット、25受信、0%パケットロス、時間24034ms rtt min/avg/max/mdev = 55.846/72.355/100.889/11.747 ms' – elano7

+0

問題は私のワイヤレスルータのどこかにあります。 私は携帯電話でホットスポット経由でモバイル(3G)インターネットを使用していました。 誰かがルータの設定を経験していれば、問題を解決できるようになりました。 – elano7

+0

どのようなルータですか?すべてのルーターは異なります。あなたは自分でルータを設定しましたか?ファイアウォールを「誤って」設定することはほとんどありません。お使いのコンピュータにアクセスをブロックしているファイアウォールやウィルス対策ソフトウェアをお持ちではありませんか?JavaMail FAQには、[接続のデバッグに関するヒント](https://javaee.github.io/javamail/FAQ#condebug)があります。 –

0

は、サードパーティのGoogleアプリの許可がオフになっていることなので、それらを可能にすることにより、試してください: https://myaccount.google.com/lesssecureapps

+0

問題はワイヤレスルータのどこかにあります。 私は携帯電話でホットスポット経由でモバイル(3G)インターネットを使用していました。 誰かがルータの設定を経験していれば、問題を解決できるようになりました。 – elano7

関連する問題