PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : EMail versenden



anunnaki
28-03-2008, 11:23
Hallo,

ich bin leider mal wieder mit meinem Latein am Ende.
Ich will aus meinem Javaprogramm eine Mail versenden. Auf meinem Entwicklungssystem unter Windows funktioniert es auch. Sobald ich das ganze auf mein Linuxsystem laufen lasse funktioniert es nicht. Ich erhalte die Fehlermeldung:

java.lang.NoClassDefFoundError: javax/activation/DataSource
utilities.SendMyMail.sendMail(SendMyMail.java:40)
guix.Cip.doPostIt(Cip.java:59)
guix.BasicLet.doPost(BasicLet.java:45)
javax.servlet.http.HttpServlet.service(HttpServlet .java:710)

Hier der Code meiner Klasse SendMyMail:



package utilities;

import java.util.Date;
import java.util.Locale;
import java.util.Properties;
import java.util.ResourceBundle;

import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class SendMyMail {

public boolean sendMail(String recipientsAddress,String subject, String text ){
ResourceBundle rb=ResourceBundle.getBundle("resource.EmailProperties",new Locale("de","DE"));
boolean error=false;
//MailAuthenticator auth = new MailAuthenticator(rb.getString("mail.user.name"), rb.getString("mail.user.password"));
MailAuthenticator auth=new MailAuthenticator("Benutzername","Passwort");
Properties properties = new Properties();
// Den Properties wird die ServerAdresse hinzugefügt
properties.put("mail.smtp.host", rb.getString("mail.smtp.host"));
// !!Wichtig!! Falls der SMTP-Server eine Authentifizierung
// verlangt
// muss an dieser Stelle die Property auf "true" gesetzt
// werden
properties.put("mail.smtp.auth", rb.getString("mail.smtp.auth"));
// Hier wird mit den Properties und dem implements Contructor
// erzeugten
// MailAuthenticator eine Session erzeugt
properties=new Properties();
properties.put("mail.smtp.host", "mail.domain.de");
properties.put("mail.smtp.auth","false");
Session session = Session.getDefaultInstance(properties, auth);
try {
// Eine neue Message erzeugen
Message msg = new MimeMessage(session);
// Hier werden die Absender- und Empfängeradressen gesetzt
msg.setFrom(new InternetAddress(rb.getString("mail.address.sender")));
msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(
recipientsAddress, false));
// Der Betreff und Body der Message werden gesetzt
msg.setSubject(rb.getString("mail.subject.cip")+subject);
//msg.setText(text);
// Hier lassen sich HEADER-Informationen hinzufügen
//msg.setHeader("Test", "Test");
msg.setContent(text,"text/plain");
msg.setSentDate(new Date( ));
// Zum Schluss wird die Mail natürlich noch verschickt
Transport.send(msg);
}
catch (Exception e) {
e.printStackTrace( );
error=true;
}
return error;
}
class MailAuthenticator extends Authenticator {
/**
* Ein String, der den Usernamen nach der Erzeugung eines
* Objektes<br>
* dieser Klasse enthalten wird.
*/
private final String user;
/**
* Ein String, der das Passwort nach der Erzeugung eines
* Objektes<br>
* dieser Klasse enthalten wird.
*/
private final String password;
/**
* Der Konstruktor erzeugt ein MailAuthenticator Objekt<br>
* aus den beiden Parametern user und passwort.
*
* @param user
* String, der Username fuer den Mailaccount.
* @param password
* String, das Passwort fuer den Mailaccount.
*/
public MailAuthenticator(String user, String password) {
this.user = user;
this.password = password;
}
/**
* Diese Methode gibt ein neues PasswortAuthentication
* Objekt zurueck.
*
* @see javax.mail.Authenticator#getPasswordAuthentication ()
*/
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(this.user, this.password);
}
}
}



Hat jemand eine Idee woran es liegen könnte?

mfg
Anunnaki

anunnaki
28-03-2008, 12:30
Auf meinem Entwicklungssystem habe ich Java6 installiert und mit Code-Style 5 entwickelt. Auf meinem Linux-Server verwende ich noch Java5.
Bestandteil von Java 6 ist die activation.jar, von Java5 nicht. Nun habe ich die activation.jar in mein Projekt eingebunden und auf den Linux-Server aufgespielt.
Nun klappt der E-mail-versand auch auf dem Linux-System.


mfg
Anunnaki