web-dev-qa-db-ja.com

Javaメール例外エラー;

MyCode:

import Java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class SendMailTLS {
public static void main(String[] args) {
    final String username = "[email protected]";
    final String password = "myemailpassword";
    Properties props = new Properties();
    props.put("mail.smtp.auth", "true");
    props.put("mail.smtp.starttls.enable", "true");
    props.put("mail.smtp.Host", "smtp.gmail.com");
    props.put("mail.smtp.port", "587");
    Session session = Session.getInstance(props,
      new javax.mail.Authenticator() {
        protected PasswordAuthentication getPasswordAuthentication() {
            return new PasswordAuthentication(username, password);
        }
      });

    try {
        Message message = new MimeMessage(session);
        message.setFrom(new InternetAddress("[email protected]"));
        message.setRecipients(Message.RecipientType.TO,
            InternetAddress.parse("[email protected]"));
        message.setSubject("Testing Subject");
        message.setText("Dear Mail Crawler,"+
 "\n\n No spam to my email,please!"); 
        Transport.send(message);
        System.out.println("Done");
    } catch (MessagingException e) {
        throw new RuntimeException(e);
    }
}
}

私のエラー:

スレッド「メイン」の例外Java.lang.RuntimeException:javax.mail.MessagingException:
不明なSMTPホスト:smtp.gmail.com;
ネストされた例外は次のとおりです。
Java.net.UnknownHostException:smtp.gmail.com
Mail.SendMailTLS.main(SendMailTLS.Java:56)
原因:javax.mail.MessagingException:不明なSMTPホスト:smtp.gmail.com;
ネストされた例外は次のとおりです。
Java.net.UnknownHostException:smtp.gmail.com
com.Sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.Java:1970)
com.Sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.Java:642)
javax.mail.Service.connect(Service.Java:317)
javax.mail.Service.connect(Service.Java:176)で
javax.mail.Service.connect(Service.Java:125)で
javax.mail.Transport.send0(Transport.Java:194)
javax.mail.Transport.send(Transport.Java:124)で
Mail.SendMailTLS.main(SendMailTLS.Java:51)
原因:Java.net.UnknownHostException:smtp.gmail.com
Java.net.PlainSocketImpl.connect(PlainSocketImpl.Java:177)
Java.net.SocksSocketImpl.connect(SocksSocketImpl.Java:366)
Java.net.Socket.connect(Socket.Java:525)で
Java.net.Socket.connect(Socket.Java:475)で
com.Sun.mail.util.SocketFetcher.createSocket(SocketFetcher.Java:319)
com.Sun.mail.util.SocketFetcher.getSocket(SocketFetcher.Java:233)
com.Sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.Java:1938)
...あと7つ
Javaの結果:1

ローカルプロキシは172.17.0.4:808ユーザー名は:ser1、パスワードは:ser2
ソリューションpls ??

9
special

プロキシの下にいる場合は、Javaメールを使用できないと思います。

差出人: Oracle.com

Q:プロキシサーバーを介して動作するようにJavaMailを構成するにはどうすればよいですか?

A:JavaMailは現在、Webプロキシサーバーを介したメールサーバーへのアクセスをサポートしていません。プロキシサーバーを使用する主な理由の1つは、企業ネットワーク内からのHTTP要求が企業ファイアウォールを通過できるようにすることです。ファイアウォールは通常、インターネットへのほとんどのアクセスをブロックしますが、プロキシサーバーからの要求は通過できます。さらに、企業ネットワーク内のメールサーバーは、電子メールに対して同様の機能を実行し、SMTP経由でメッセージを受け入れてインターネット上の最終的な宛先に転送し、受信メッセージを受け入れて適切な内部メールサーバーに送信します。

10
alain.janinm

このサーバーを試してください:

smtp.googlemail.com

10
Qwertovsky

これはGmailのセキュリティが原因で発生します...アプリを介してGmailアカウントへのアクセスを許可するだけで、アカウントの下に移動します: https://www.google.com/settings/security/lesssecureapps これで機能します..smtp.gmail.comは正しいです。変更する必要はありません。

また、インターネット接続も確認することを忘れないでください。

2
Maher Abuthraa

smtp.gmail.comなしでprops.put("mail.smtp.Host", "gmail.com");を試してみてください

1
Akash Yadav

開発目的のためだけに、プロキシ経由でsmtp.gmail.comへのトンネルを開こうとすることができます

proxytunnel -q -p proxy_Host:proxy_port -d smtp.gmail.com:465 -a local_port

コードで使用します

props.put("mail.smtp.Host", "localhost");
props.put("mail.smtp.port", "local_port");
1
Anton