# JavaMail und Session/Message Problem



## Guest (3. Jul 2005)

```
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
public class JavMail
{
  public static void postMail( String recipient,
                               String subject,
                               String message, String from )
    throws [b]MessagingException[/b]
  {
    Properties props = new Properties();
    props.put( "mail.smtp.host", "mail.java-tutor.com" );
    
    [b]Session [/color][/b]session = [b]Session[/b].getDefaultInstance( props );
    
    [b]Message [/b]msg = new [b]MimeMessage[/b]( session );
    
    [b]InternetAddress [/b]addressFrom = new [b]InternetAddress[/b]( from );
    msg.setFrom( addressFrom );
    
    [b]InternetAddress [/b]addressTo = new [b]InternetAddress[/b]( recipient );
    msg.setRecipient( [b]Message[/b].RecipientType.TO, addressTo );
    
    msg.setSubject( subject );
    msg.setContent( message, "text/plain" );
    [b]Transport[/b].send( msg );
  }
  
  public static void main( String args[] ) throws Exception
  {
    postMail( "Buchtest@java-tutor.com",
              "Tolles Buch",
              "Wow. Das Buch ist schön zu lesen",
              "JavaTutor@java-tutor.com");
  }
}
```

Ich habe folgendes Problem, dieser Quellcode will  bei mir nicht laufen, die fetten Befehle ,bzw. die zwischen * command * werden in Eclipse rot martkiert. Bei den Packages steht "Never used".  Im Habe über import die Dateien mail.jar (javamail-1_3_3-ea) und activation.jar (jaf-1_0_2-upd2) importiert. Bei Windows XP habe ich unter Systemsteuerung->Umgebungsvariablen->Path den Pfad ( C:\Programm\java ) eingetragen. Ich benutze Java 1.5 und Eclipse 3.0.


----------



## Guest (3. Jul 2005)

Mach' mal

msg.saveChanges();

vor dem Senden der Email.
Hier ein Beispiel, das funktioniert
	
	
	
	





```
String smtpHost = "";
String smtpUser = "";
String smtpPassword = "";
String msgFrom = "";
String msgTo = "";

Session session = Session.getDefaultInstance(new Properties());

MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(msgFrom));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(msgTo));
message.setSubject("Java Mail API Test");
message.setText("Dies ist ein Test");
message.saveChanges(); // !!! wichtig, sonst geht nix

Transport transport = session.getTransport("smtp");
transport.connect(smtpHost, smtpUser, smtpPassword);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
```


----------



## Gast (3. Jul 2005)

Geht, danke schön.

Das Problem ist nur, dass unter Eclipse beim anlegen eiens Objektes wie z.B.  Session session = Session.getDefaultInstance(new Properties()), Session  rot uterstrichen ist, was ich mir nicht erklären kann. Kann es daran liegen das im mail.jar die *.java Dateien nicht drin sind ? Es stört einwenig, ich denke dann immer da ist was falsch.


----------

