2015-10-01 28 views
6

İşte benim kodPosta gönderiliyor, javax.mail.MessagingException: SMTP ana bilgisayara bağlanılamadı: localhost, port: 25;

import java.util.Properties; 
import javax.mail.Message; 
import javax.mail.MessagingException; 
import javax.mail.Session; 
import javax.mail.Transport; 
import javax.mail.internet.InternetAddress; 
import javax.mail.internet.MimeMessage; 


public class MailSendClass { 
    public static void main (String [] args){ 

     // Recipient's email ID needs to be mentioned. 
     String to = "[email protected]"; 

     // Sender's email ID needs to be mentioned 
     String from = "[email protected]"; 

     // Assuming you are sending email from localhost 
     String host = "localhost"; 

     // Get system properties 
     Properties properties = System.getProperties(); 

     // Setup mail server 
     properties.setProperty("mail.smtp.host", host); 

     // Get the default Session object. 
     Session session = Session.getDefaultInstance(properties); 

     try{ 
     // Create a default MimeMessage object. 
     MimeMessage message = new MimeMessage(session); 

     // Set From: header field of the header. 
     message.setFrom(new InternetAddress(from)); 

     // Set To: header field of the header. 
     message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); 

     // Set Subject: header field 
     message.setSubject("Thanks for registering on our website!"); 

     // Now set the actual message 
     message.setText("Welcome To Job Portal !!!! Again Thanks "); 

     // Send message 
     Transport.send(message); 
     System.out.println("Sent message successfully...."); 
     }catch (MessagingException mex) { 
     mex.printStackTrace(); 
     } 

    } 
} 

Ve ben bu neden oluyor hata almıyorum her

javax.mail.MessagingException: Could not connect to SMTP host: localhost, port: 25; 
    nested exception is: 
    java.net.ConnectException: Connection refused: connect 
    at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1706) 
    at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:525) 
    at javax.mail.Service.connect(Service.java:291) 
    at javax.mail.Service.connect(Service.java:172) 
    at javax.mail.Service.connect(Service.java:121) 
    at javax.mail.Transport.send0(Transport.java:190) 
    at javax.mail.Transport.send(Transport.java:120) 
    at MailSendClass.main(MailSendClass.java:58) 
Caused by: java.net.ConnectException: Connection refused: connect 
    at java.net.DualStackPlainSocketImpl.connect0(Native Method) 
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79) 
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345) 
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) 
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) 
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) 
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) 
    at java.net.Socket.connect(Socket.java:589) 
    at java.net.Socket.connect(Socket.java:538) 
    at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:284) 
    at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:227) 
    at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1672) 
    ... 7 more 
BUILD SUCCESSFUL (total time: 3 seconds) 

bu hatayı alıyorum. Lütfen bu hatayı düzeltmede bana yardımcı olun.

+1

Yerel smtp sunucusu nedir? –

+2

Açık olabilir, ancak geliştirme makinenizde çalışan ve aslında localhost dinleyen bir mailserver var mı? –

+0

apache tomcat server –

cevap

2

Hata öz explainatory olan

// Assuming you are sending email from localhost 
    String host = "localhost"; 
    ... 
    // Setup mail server 
    properties.setProperty("mail.smtp.host", host); 

Yani yapmanız gerekir:

  • ya bir yapılandırmak Yerel sisteminizde bir röle olarak yerel SMTP sunucusu (Postfix veya sendmail iki iyi bilen sunucudır)
  • yapılandırmak basitçe posta isteğini izleri ancak bu bile posta teslim etmeye çalışmaz bir kukla sunucu arasında
  • veya izin verilen bir sunucu ile uygulamanızı yapılandırmak (Python kutudan çıktığı böyle kukla sunuculara sahip bilinir) kullanımı - sistem yöneticinize şirket ortamında veya İSS'nizle tek tek iletişime geçin. Her neyse, gerçek bir röleyi yapılandırmak için buna ihtiyacınız olacak.
+0

Uygulamamda GlassFish sunucusunu kullanıyorum. –

+0

@KetanGupta: AFAIK GlassFish ** bir SMTP sunucusu değil ... Sadece bir hata alırsanız, yerel ağda çalışan bir SMTP sunucusu, komut satırında 'telnet localhost 25' deneyin. –

+0

Seni tamamen alamıyorum. Lütfen bana tam bir cevap verin, çünkü bu şeyleri bilmiyorum. –

1

Bu iki hat bakmak gerekir:

javax.mail.MessagingException: Could not connect to SMTP host: localhost, port: 25; 
Caused by: java.net.ConnectException: Connection refused: connect 

hatadır: "port 25 de localhost dinleyen bir şey yok".

Posta sunucusu olarak localhost: 25'i kullanmaya çalışıyorsunuz ancak orada sunucu yok.

+0

Bu sorunun çözümü nedir? –

+2

Yerel smtp sunucusunu makinenizde doğru şekilde yapılandırın. Belki bir linux sistemi ise postfix'i yükleyin. – ScreamingTree

2

Ücretsiz Google SMTP sunucusunu sınama olarak kullanmalısınız.

mail.host=smtp.gmail.com 
mail.username=//your gmail 
mail.password=//your password 
mail.defaultEncoding=UTF-8 
mail.smtp.auth=true 
mail.smtp.starttls.required=true 
mail.smtp.starttls.enable=true 
mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory 
mail.smtp.socketFactory.fallback=false 
mail.smtp.port=465 
mail.smtp.socketFactory.port=465 

Ardından, gmail ile giriş ve less secure apps açın. Sen localhost üzerinde hiçbir SMTP sunucu var javax.mail.MessagingException: Could not connect to SMTP host: localhost, port: 25;

, ama orada yapılandırmak:

+0

İlk önce, bu socketFactory özelliklerini ayarlamayın, [bunlar gerekli değildir] (http://www.oracle.com/technetwork/java/javamail/faq/index.html#commonmistakes). İkincisi, mail.password özelliği veya mail.defaultEncoding özelliği yoktur. Gmail'i kullanmanın doğru yolu için [JavaMail SSS] 'ı (http://www.oracle.com/technetwork/java/javamail/faq/index.html#gmail) okuyun. –

1

İşte çalışma çözümü bro. hepsinin

1) Öncelikle sizin gibi, davayı "" [email protected]"

2 posta göndermek istediği hangi gmail hesabı) https://support.google.com/accounts/answer/6010255?hl=en

altında bu bağlantıyı açmak açmak

garantili oluyor

3) Daha az güvenli uygulamalar "git "üzerine tıklayın seçenek

4) bu kadar Sonra o

5) açmak (" Hesabım bölümüne.":

İlgili konular