Anzeige:
Ergebnis 1 bis 2 von 2

Thema: EMail versenden

  1. #1
    Registrierter Benutzer
    Registriert seit
    01.12.2006
    Beiträge
    32

    EMail versenden

    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:

    Code:
    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

  2. #2
    Registrierter Benutzer
    Registriert seit
    01.12.2006
    Beiträge
    32

    Problem gelöst

    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

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •