私はthisチュートリアルを使用してアプリ内からメールを送信しました。 私は同じコードを3種類のアプリに使いましたが、すべてうまくいきました。しかし、今、数ヶ月後、それは動作を停止しました。 私はすべての可能なサイトを検索しましたが、どれも私を助けませんでした。 私のGmailアカウントから低いセキュリティを設定して、セッションのプロパティを変更しようとしましたが、何も機能しませんでした。 私は本当にいくつかの助けに感謝します。アンドロイドはアプリからメールを送信していません
Log.d("EmailSender","sending message");
Properties props = new Properties();
props.put("mail.smtp.host", host);
props.put("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.socketFactory.class",
"javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "465");
Session session = Session.getDefaultInstance(props, new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(user,pass);
}
});
try {
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(user));
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(SharedPreferenceUtils.getUserEmail(getActivity())));
message.setSubject(subject);
message.setContent(content, "text/html; charset=utf-8");
//Transport.send(message);
Transport transport = session.getTransport("smtps");
transport.connect (host, Integer.parseInt(port), user, pass);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
Log.d("EmailSender", "message sent");
} catch (MessagingException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
マイエラー:ログからの
java.net.ConnectException: failed to connect to smtp.gmail.com/2a00:1450:4013:c01::6d (port 465) after 90000ms: isConnected failed: ENETUNREACH (Network is unreachable)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1391)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:412)
at javax.mail.Service.connect(Service.java:288)
at com.mihaela.myapp.ui.dialog.EnterPasswordDialog$SendMailTask.doInBackground(EnterPasswordDialog.java:222)
at com.mihaela.myapp.ui.dialog.EnterPasswordDialog$SendMailTask.doInBackground(EnterPasswordDialog.java:179)
at android.os.AsyncTask$2.call(AsyncTask.java:288)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
Caused by: java.net.ConnectException: failed to connect to smtp.gmail.com/2a00:1450:4013:c01::6d (port 465) after 90000ms: isConnected failed: ENETUNREACH (Network is unreachable)
at libcore.io.IoBridge.isConnected(IoBridge.java:267)
at libcore.io.IoBridge.connectErrno(IoBridge.java:191)
at libcore.io.IoBridge.connect(IoBridge.java:127)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:188)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:461)
at java.net.Socket.connect(Socket.java:918)
at java.net.Socket.connect(Socket.java:844)
at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:233)
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:189)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1359)
... 10 more
Caused by: android.system.ErrnoException: isConnected failed: ENETUNREACH (Network is unreachable)
at libcore.io.IoBridge.isConnected(IoBridge.java:252)
... 19 more
これはネットワークに到達できないことを示しています。インターネットに接続してもよろしいですか?マニフェストでインターネットのアクセス許可を有効にしていますか? –
はい、私はそれをインターネットに接続しました。許可は最初からあった。私もadbを使ってそのウェブサイトにpingしようとしました。 –
奇妙な。問題はネットワークではなく、コードでなければなりません。 –