我嘗試了很多的教程創建的電子郵件發送程序,但每一個代碼拋出了同樣的錯誤: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)互聯網,一切都很順利。
現在我們可以解決問題,如果有人有路由器設置的經驗。
看來你不能得到達到谷歌的郵件服務器,你可以從'平smtp.gmail.com'你的電腦? –
可能是客戶端計算機上的防火牆,阻止傳出呼叫或在另一端的某處。詳細信息可以在這裏找到,https://coderanch.com/t/476146/java/SMTP-Send-Email-Java-Mail –
對不起,但我不太明白,'ping smtp.gmail是什麼意思。 com'? – elano7