SMTP Authentifizierung mit JavaMail: NoClassDefFoundError

benjero

Grünschnabel
Moin,

ich versuche mir eine Möglichkeit zu schaffen über die Kommandozeile Mails mittels SMTP Authentifizierung zu verschicken. Eine Variante der Implementierung habe ich auch im Netz gefunden, doch erhalte ich beim Ausführen immer folgende Fehlermeldung:

java.lang.NoClassDefFoundError: javax/activation/DataSource
at SMTPAuth.send(SMTPAuth.java:29)
at SMTPAuth.main(SMTPAuth.java:48)
Exception in thread "main"

Anbei kurz noch die Klassen:
import javax.mail.*;
import javax.mail.internet.*;

public class SMTPAuth {

public static void send(String subject, String text, String to) {
//Get system properties
java.util.Properties props = System.getProperties();
//Setup mail server
props.put("mail.smtp.host", "smtp.web.de");
Authenticator auth = new PopupAuthenticator();
props.put("mail.smtp.auth", "true");
Session session = Session.getDefaultInstance(props, auth);
//Define message
MimeMessage message = new MimeMessage(session);
try {
message.setFrom(new InternetAddress("a@x.com"));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(
to));
message.setSubject(subject);
message.setText(text);
Transport.send(message);
} catch (MessagingException e) {
System.out.println(e.getMessage());
}
}

public static void main(String[] args) {
if (args.length != 3) {
System.out.println("Nicht genügend Parameter");
} else {
send(args[0], args[1], args[2]);
}
}
}

Und
import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;


class PopupAuthenticator
extends Authenticator {

public PasswordAuthentication getPasswordAuthentication() {
String username, password;
username = "user";
password = "pass";
return new PasswordAuthentication(username, password);
}
}

Leider kann weiß ich nicht, weshalb diese Exception geworfen wird. Seltsamerweise läuft das ganze im JBuilder ohne Probleme, aus Eclipse heraus dafür dann wieder nicht.

Danke für Eure Hilfe!
Ben
 
Habe gerade das gleiche Problem gehabt.
Habe einfach nur folgende sun.com Packete in die entsprechenden javax-Files
copiert: actvation.jar und mail.jar. Beide kannst Du dort runterladen.
(Ich benutze aber auch nur die Methode send(" "," "," ") aus Deinen Klassen in einer eigenen Applikation. )

Du solltest also erst einmal prüfen, ob diese beiden jar´s vorhanden sind
Direkt in Netbeans konnte ich sie nicht instalieren.

MfG Gerhard
 
Zurück