你好
我正在嘗試創建一個無需用戶交互(用戶將被通知正在發送的任何電子郵件通知用戶)發送電子郵件的Android應用程序。我使用這個JavaMail的:http://code.google.com/p/javamail-android/downloads/list而下面這個實例:http://www.jondev.net/articles/Sending_Emails_without_User_Intervention_%28no_Intents%29_in_Android
但我收到以下錯誤:在沒有用戶交互的情況下使用javamail發送電子郵件 - java.net.ConnectException
10-07 09:23:10.373: E/MailApp(9173): Could not send email
10-07 09:23:10.373: E/MailApp(9173): javax.mail.MessagingException: Could not connect to SMTP host: localhost, port: 25;
10-07 09:23:10.373: E/MailApp(9173): nested exception is:
10-07 09:23:10.373: E/MailApp(9173): java.net.ConnectException: failed to connect to localhost/127.0.0.1 (port 25): connect failed: ECONNREFUSED (Connection refused)
10-07 09:23:10.373: E/MailApp(9173): at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1391)
10-07 09:23:10.373: E/MailApp(9173): at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:412)
代碼發送電子郵件:
Thread emailSendThread = new Thread(new Runnable() {
@Override
public void run() {
while (true) {
try {
Thread.sleep(100);
}
catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
if (sendEmail == true) {
try {
MailSender m = new MailSender("[email protected]", "password");
String[] toArr = {"[email protected]"};
m.setTo(toArr);
m.setFrom("[email protected]");
m.setSubject("This is an email sent using my Mail JavaMail wrapper from an Android device.");
m.setBody("Email body.");
try {
m.send();
if(m.send()) {
Toast.makeText(MainActivity.this, "Email was sent successfully.", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(MainActivity.this, "Email was not sent.", Toast.LENGTH_LONG).show();
}
} catch(Exception e) {
//Toast.makeText(MailApp.this, "There was a problem sending the email.", Toast.LENGTH_LONG).show();
Log.e("MailApp", "Could not send email", e);
}
}
catch (Exception e) {
Log.e("email", "Error", e);
}
try {
Thread.sleep(100);
}
catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
sendEmail = false;
}
}
}
});
我已經取代我電子郵件用戶名和密碼,例如在這段代碼中。
發送郵件我執行sendEmail = true
;
確實smtp服務器在設備上?沒有?那麼爲什麼要使用本地主機? – Selvin 2014-10-07 08:49:12
不是?所以我應該使用什麼? – 2014-10-07 08:53:35
FSM救我們!!!這不是很明顯嗎? SMTP服務器的地址 – Selvin 2014-10-07 08:55:17