2016-03-21 5 views
-1

Ich versuche, ein kleines Programm auszuführen, das eine generische E-Mail an mein Konto sendet aber ich erhalte eine Ausnahme:mit Java E-Mails verschicken E-Mail

javax.mail.SendFailedException: Invalid Addresses; 
    nested exception is: 
    com.sun.mail.smtp.SMTPAddressFailedException: 553 We do not relay non-local mail, sorry. 

    at com.sun.mail.smtp.SMTPTransport.rcptTo(SMTPTransport.java:1873) 
    at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1120) 
    at javax.mail.Transport.send0(Transport.java:195) 
    at javax.mail.Transport.send(Transport.java:124) 
    at SendEmail.main(SendEmail.java:54) 
Caused by: com.sun.mail.smtp.SMTPAddressFailedException: 553 We do not relay non-local mail, sorry. 

    at com.sun.mail.smtp.SMTPTransport.rcptTo(SMTPTransport.java:1724) 
    ... 4 more 

Das ist mein-Code

import java.util.*; 
import javax.mail.*; 
import javax.mail.internet.*; 

public class SendEmail 
{ 
    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("This is the Subject Line!"); 

     // Now set the actual message 
     message.setText("This is actual message"); 

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

Im ist mit das XAMPP Control Panel zum Ausführen eines Mercury Servers. Die Häfen sind 25,79,105,106,110,143 und 2224. Ich bin neu dazu, vielleicht kann mich jemand in die richtige Richtung drängen.

+4

Der Server, den Sie verwenden, gab eine sinnvolle Nachricht zurück; * Wir leiten keine nicht lokale Mail weiter, sorry. * –

Antwort

1

Sie müssen die Option "SMTP-Weitergabe von nicht lokaler Mail nicht zulassen" deaktivieren.

Siehe den Link: uncheck option

+0

Ja, ich habe das getan und es heißt "Nachricht erfolgreich gesendet ....", aber ich habe keine Mail in meiner Mailbox. –

+0

Das kann Gegenstand für neue Frage sein. –

0

Bitte unten zwei Dinge überprüfen. 1) .wo der Host-Mail-Server läuft. Wenn es auf dem lokalen Computer ausgeführt wird, legen Sie die Host-Adresse als 0.0.0.0.0

2. Wenn es externe Mail-Server ist, überprüfen Sie die E-Mail-Anmeldeinformationen wie Benutzername, Kennwort, Host.

Ich denke, 553 ist "Fehler verweigert" vom Server, das heißt, Sie haben keine korrekten Anmeldeinformationen angegeben.