# JavaMail



## conan2 (17. Mrz 2006)

Ich habe mir vor kurzem die JavaMail Standard Extension runtergeladen und hab ein Beispiel aus dem Java Kochbuch ausprobiert:


```
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;

public class Sender {
	protected String message_recip = "myname@gmail.com";

	protected String message_subject = "Betreff";

	protected String message_cc = "myname@gmx.at";

	protected String message_body = "Funzt!";

	protected Session session;

	protected Message mesg;

	public void doSend() {
		Properties props = new Properties();
		props.put("mail.smtp.host", "mailhost");
		session = Session.getDefaultInstance(props, null);
		session.setDebug(true);
		try {
			mesg = new MimeMessage(session);
			mesg.setFrom(new InternetAddress("nobody@host.domain"));

			InternetAddress toAddress = new InternetAddress(message_recip);
			System.out.println(toAddress.toString());
			mesg.addRecipient(Message.RecipientType.TO, toAddress);

			InternetAddress ccAddress = new InternetAddress(message_cc);
			System.out.println(ccAddress.toString());
			mesg.addRecipient(Message.RecipientType.CC, ccAddress);

			mesg.setSubject(message_subject);

			mesg.setText(message_body);

			Transport.send(mesg);
		} catch (MessagingException ex) {
			while ((ex = (MessagingException) ex.getNextException()) != null) {
				ex.printStackTrace();
			}
		}
	}

	public static void main(String[] av) {
		Sender sm = new Sender();
		sm.doSend();
	}
}
```

Bis zur Zeile "mesg = new MimeMessage(session);" scheint eigentlich alles zu funktionieren, aber dann bekomme ich folgenden Error:

Exception in thread "main" java.lang.NoClassDefFoundError: javax/activation/DataSource
	at Sender.doSend(Sender.java:26)
	at Sender.main(Sender.java:51)

Falls irgendjemand weiß, was das genau bedeutet und wie man das beheben kann, bitte posten![/code]


----------



## DP (17. Mrz 2006)

die activation.jar in dein classpath packen


----------



## Guest (18. Mrz 2006)

thx, die hab ich inzwischen auf der java-seite von sun entdeckt. aber leider funzt es trotzdem nicht, weil es "mail.dmtp.host" soweit ich das anhand der UnknownHostException sehen kann, nicht gibt -.-'


----------



## DP (18. Mrz 2006)

tjo, tippfehler deinerseits: mail.dmtp.host

mach ma smtp


----------



## DP (18. Mrz 2006)

bzw. den korrekten host angeben


----------



## conan2 (18. Mrz 2006)

Ja, ich hab im Prog eh "mail.smtp.host" geschrieben^^
Wie meinst du, den korrekten Host? Ist "mail.smtp.host" nicht ein Host, wo die Mail direkt von der eigenen Ip oder so versendet wird?


----------



## Caffè Latte (18. Mrz 2006)

Hi,

ohne die Doku gelesen zu haben würde ich mal sagen, dass du einen SMTP-Server angeben musst. Wenn du GMX nutzt, dann trag deren SMTP-Server ein.

Zumindest läßt die UnknownHostException diesen Rückschluss zu.

Caffè Latte


----------



## DP (19. Mrz 2006)

```
props.put("mail.smtp.host", "mailhost");
```

mailhost > da muss dein mailserver rein.


----------



## indy3 (24. Mrz 2006)

Ich habe auch ein Problem. Anscheinend fehlt eine Klasse. Ich weiß jedoch nicht, wo diese sein soll ("javax.acrivation.* ???).

Ich bekomme diese Fehlermeldung:

Exception in thread "main" java.lang.NoClassDefFoundError: javax/activation/DataSource
	at SendJavaMail.postMail(SendJavaMail.java:22)
	at SendJavaMail.main(SendJavaMail.java:37)


----------



## Murray (24. Mrz 2006)

indy3 hat gesagt.:
			
		

> Ich habe auch ein Problem. Anscheinend fehlt eine Klasse. Ich weiß jedoch nicht, wo diese sein soll ("javax.acrivation.* ???).
> 
> Ich bekomme diese Fehlermeldung:
> 
> ...



Du brauchst das Java Beans Activation Framework, dazu gehört eine Datei names activation.jar, die Du in den Classpath aufnehmen musst.


----------



## DP (26. Mrz 2006)

DP hat gesagt.:
			
		

> die activation.jar in dein classpath packen



 :applaus:


----------

