So ich habe das jetzt mal mit Java ausprobiert.
Leider bekomme ich beim Starten des Codes einen Fehler und es wird keine Mail versendet.
Nachfolgend mal der Quellcode und danach der Fehler:
package mailapp;
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
//import javax.activation.*;
public class SendEmail
{
public static void main(String [] args)
{
// Recipient's email ID needs to be mentioned.
String to = "meine-emailadresse@gmx.de"; nicht die korrekte email adresse
// Sender's email ID needs to be mentioned
String from = "nas-email-adresse@gmx.de"; ebenfalls nicht korrekt
// Assuming you are sending email from localhost
String host = "localhost";
// Get system properties
Properties properties = System.getProperties();
// Setup mail server
properties.setProperty("smtp.gmx.net", host);
properties.setProperty("nas-email-adresse@gmx.de", "myuser"); wieder nicht die korrekte mail eingesetzt
properties.setProperty("nas-email-passwort", "mypwd"); ebenfalls nicht das korrekte passwort
// 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();
}
}
}
com.sun.mail.util.MailConnectException: Couldn't connect to host, port: localhost, 25; timeout -1;
nested exception is:
java.net.ConnectException: Connection refused: connect
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2054)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:697)
at javax.mail.Service.connect(Service.java:364)
at javax.mail.Service.connect(Service.java:245)
at javax.mail.Service.connect(Service.java:194)
at javax.mail.Transport.send0(Transport.java:253)
at javax.mail.Transport.send(Transport.java:124)
at mailapp.SendEmail.main(SendEmail.java:50)
Caused by: java.net.ConnectException: Connection refused: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:331)
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:238)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2020)
... 7 more
Den Import von activation.jar habe ich absichtlich ausgeklammert, da dies überhaupt nicht genutzt wird und es weder mit noch ohne läuft. Aus der Fehlerbeschreibung erkenne ich nur, dass es am Befehl Transport.send(message); hapert, aber warum?
Ich habe die JavaMail API Version 1.5.4 und die JAF 1.1.
Ich verstehe nicht, warum es weder über Eclipse noch über die von mir erstellte Batch-Datei eine Verbindung aufbauen kann. Aktuell läuft es zwar nur auf einer virtuellen Maschine, um erstmal alles zu testen, aber diese hat definitiv eine Verbindung zum Internet eingestellt als Netzwerkbrücke und nicht als NAT. Kann mir jemand n Tipp geben?