Ich bin gerade in einer ziemlich seltsamen Situation. Für den vollständigen Code, hier können Sie sehen: http://javapapers.com/android/android-email-app-with-gmail-smtp-using-javamail/JavaMail-API funktioniert nicht auf mobilen Daten, aber gut auf Wifi
Ich benutze diesen Code zum Senden von E-Mail-Zwecken. Aber das Problem liegt vor uns. Ich habe 100% Erfolgsquote beim Senden von E-Mails mit dieser Methode auf WIFI. Aber wenn ich Mobile Data (4G) verwende, habe ich eine Erfolgsquote von ca. 30%. Bei einigen Geräten funktioniert es überhaupt nicht. Es gibt kein Problem mit der 4G-Verbindung. Es schwankt nicht. Es funktioniert gut. Ich habe diese Wi-Fi und mobile Daten auf mehreren Geräten ausprobiert. Alles weist darauf hin, dass es ein Problem mit dem Code für mobile Daten gibt.
Derzeit auf meinem Debug-Gerät, das auf mobilen Daten ist, funktioniert der Code. Daher kann ich logcat jetzt nicht mehr posten. Aber oft funktioniert es nicht einmal auf dem Debug-Gerät. Aber jetzt, da es funktioniert, kann ich logcat nicht veröffentlichen. Wahrscheinlich ist ein Problem in diesem Code-Abschnitt:
try {
Transport transport = mailSession.getTransport("smtp");
transport.connect(emailHost, fromEmail, fromPassword);
Log.i("GMail", "allrecipients: " + emailMessage.getAllRecipients());
transport.sendMessage(emailMessage, emailMessage.getAllRecipients());
transport.close();
Log.i("GMail", "Email sent successfully.");
}catch (Exception e){
}
Während anderen Thread zu lesen, kam ich zu wissen, dass es möglicherweise ein Problem mit Proxy-Einstellungen sein. Aber im Code weiß ich nicht, wo ich Proxy.NoProxy
Art der Sache verwenden kann. Der vollständige Code ist im obigen Link verfügbar. Ich habe das nicht geändert (außer das Hinzufügen meiner eigenen E-Mail-Adresse und meines Passworts).
Hier ist der Fehler logcat:
08-09 19:29:54.594 9551-9551/com.parassidhu.cdlumaths I/SendMailActivity: Send Button Clicked. 08-09 19:29:54.594 9551-9551/com.parassidhu.cdlumaths I/SendMailActivity: To List: [[email protected]] 08-09 19:29:54.654 9551-9893/com.parassidhu.cdlumaths I/d: About to instantiate GMail... 08-09 19:29:54.668 9551-9893/com.parassidhu.cdlumaths I/GMail: Mail server properties set. [ 08-09 19:29:54.677 9551: 9893 W/ ] Unable to open '/system/framework/WfdCommon.jar': No such file or directory 08-09 19:29:55.000 9551-9893/com.parassidhu.cdlumaths I/GMail: toEmail: [email protected] 08-09 19:29:55.099 9551-9893/com.parassidhu.cdlumaths I/GMail: Email Message created. 08-09 19:29:58.393 9551-9893/com.parassidhu.cdlumaths I/Error: sendEmail: null 08-09 19:29:58.393 9551-9893/com.parassidhu.cdlumaths I/com.downloadinformer: Mail Sent.
Edit 2 auf einem anderen Gerät, bekam ich die logcat wie:
08-10 17:44:58.911 32384-32384/com.parassidhu.cdlumaths I/SendMailActivity: Send Button Clicked. 08-10 17:44:58.911 32384-32384/com.parassidhu.cdlumaths I/SendMailActivity: To List: [[email protected]] 08-10 17:44:58.922 32384-1140/com.parassidhu.cdlumaths I/d: About to instantiate GMail... 08-10 17:44:58.930 32384-1140/com.parassidhu.cdlumaths I/GMail: Mail server properties set. 08-10 17:44:59.027 32384-1140/com.parassidhu.cdlumaths I/GMail: toEmail: [email protected] 08-10 17:44:59.088 32384-1140/com.parassidhu.cdlumaths I/GMail: Email Message created. 08-10 17:44:59.095 32384-1140/com.parassidhu.cdlumaths D/libc-netbsd: [getaddrinfo]: hostname=smtp.gmail.com; servname=(null); cache_mode=(null), netid=0; mark=0 08-10 17:44:59.095 32384-1140/com.parassidhu.cdlumaths D/libc-netbsd: [getaddrinfo]: hostname=smtp.gmail.com; servname=(null); cache_mode=(null), netid=0; mark=0 08-10 17:44:59.208 32384-1140/com.parassidhu.cdlumaths D/libc-netbsd: getaddrinfo: smtp.gmail.com get result from proxy >> 08-10 17:44:59.219 32384-1140/com.parassidhu.cdlumaths I/System.out: [socket][0] connection smtp.gmail.com/2404:6800:4003:c00::6c:587;LocalPort=44496(0) 08-10 17:44:59.219 32384-1140/com.parassidhu.cdlumaths I/System.out: [CDS]connect[smtp.gmail.com/2404:6800:4003:c00::6c:587] tm:90 08-10 17:45:02.079 32384-1140/com.parassidhu.cdlumaths D/libc-netbsd: [getaddrinfo]: hostname=smtp.gmail.com; servname=(null); cache_mode=(null), netid=0; mark=0 08-10 17:45:02.079 32384-1140/com.parassidhu.cdlumaths D/libc-netbsd: [getaddrinfo]: hostname=smtp.gmail.com; servname=(null); cache_mode=(null), netid=0; mark=0 08-10 17:45:02.083 32384-1140/com.parassidhu.cdlumaths D/libc-netbsd: getaddrinfo: smtp.gmail.com get result from proxy >> 08-10 17:45:02.084 32384-1140/com.parassidhu.cdlumaths I/Error: sendEmail: null
Sie müssen die Debugausgabe wirklich posten, wenn sie fehlschlägt. Und es würde helfen, wenn man charakterisieren könnte, was anders ist, wenn es versagt, oder wenn es gelingt. Verwenden Sie immer denselben Mail-Server mit demselben Benutzernamen und demselben Passwort? Fällt immer das gleiche Gerät aus oder verwenden Sie mehrere Geräte? Ist der Fehler auf Ihren Standort zurückzuführen? –
Lass mich mehr versuchen Wenn ich den Logcat bekommen kann. Ich benutze den gleichen Mailserver. Derselbe Benutzername, dasselbe Passwort. Es gibt mehrere Geräte, auf denen es fehlschlägt. Dies scheint nicht im Zusammenhang mit dem Standort –
Einige Anbieter in einigen Ländern blockieren Ports.Besonders bei günstigen Telefonverträgen erhalten Sie manchmal nur http/s-Ports geöffnet. Obwohl es heute nicht üblich ist, hatte ich vor ein paar Jahren ähnliche Probleme. – Thommy