Email versenden mit Java, MessagingException und SocketException****?

ltremix

Grünschnabel
SendMail mit Java funktioniert nicht,F.Meldung: MessagingException & SocketException

Hallo zsm,

ich habe folgendes Problem.
Ich habe eine Java-Klasse mit der ich Emails versenden kann.

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

public class SendJavaMail {
	 public static void postMail( String recipient, String subject, String message, String from ) 
			 throws MessagingException{
		 
		 Properties props = new Properties();
		 props.put("mail.smtp.host", "XXX.XXX.de");
		 Session session = Session.getDefaultInstance(props);
		 Message msg = new MimeMessage(session);
		 InternetAddress addressFrom = new InternetAddress(from);
		 msg.setFrom(addressFrom);
		 InternetAddress addressTo = new InternetAddress(recipient);
		 msg.setRecipient(Message.RecipientType.TO, addressTo);
		 msg.setSubject(subject);
		 msg.setContent(message, "text/plain");
		 Transport.send(msg);
	 }
	
	 public static void main(String[] args) throws Exception {
		 postMail("XXX@XXX.de", "Test Email", "!Test Betreff", "XXX@XXX.de");
	}
	
}

Die Bibliotheken activation.jar und mail.jar habe ich auch importiert.
Da kommt aber immer die folgende Fehlermeldung:

Exception in thread "main" javax.mail.MessagingException: Could not connect to SMTP host: XXX, port: 25;
nested exception is:
java.net.SocketException: Network is unreachable: connect
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1961)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:654)
at javax.mail.Service.connect(Service.java:295)
at javax.mail.Service.connect(Service.java:176)
at javax.mail.Service.connect(Service.java:125)
at javax.mail.Transport.send0(Transport.java:194)
at javax.mail.Transport.send(Transport.java:124)
at SendJavaMail.postMail(SendJavaMail.java:19)
at SendJavaMail.main(SendJavaMail.java:23)
Caused by: java.net.SocketException: Network is unreachable: 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:321)
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:237)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1927)
... 8 more


Wenn ich das Projekt als Liferay-Projekt erzeuge, wird die Mail versendet.
Wenn ich aber ein normales Java-Projekt erzeuge, kommt die obenstehende Fehlermeldung.
Wie kann ich das Problem lösen?
Ich möchte ein normales Java-Projekt erzeugen, weil ich später ein Batch-Skript bauen muss, mit dem ich die Java-Datei ausführen werde. Oder kann man denn die Java-Datei bzw. das Java-Projekt als exe exportieren?
Also, es gibt drei Probleme:
1. Wieso kommt die Fehlermeldung bei einem Java-Projekt und nicht bei einem Liferay-Projekt?
2. Wie kann ich diese Datei mit cmd ausführen?
3. Kann man das als exe exportieren?


C:\Users\XXX\Desktop\PingServer>java SendJavaMail
Exception in thread "main" java.lang.NoClassDefFoundError: javax/mail/Address
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
at java.lang.Class.getMethod0(Unknown Source)
at java.lang.Class.getMethod(Unknown Source)
at sun.launcher.LauncherHelper.getMainMethod(Unknown Source)
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
Caused by: java.lang.ClassNotFoundException: javax.mail.Address
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 6 more



Dies kommt als Meldung, wenn ich die class-Datei mit cmd ausführe.

Gruß

ltremix
 
Zuletzt bearbeitet: