# JavaMail: Mail in Posteingang aber nicht in Versendet



## Louis2 (20. Jun 2005)

Hallo,

ich verschicke mit einem Programm (selbst erstellt mit Hilfe von JavaMail) mails.

Die mail wird zwar versendet und erscheint beim Empfänger auch im "Posteingang" aber beim Absender erscheint die mail z.B unter Outlook nicht in "Gesendete Objekte."
Wie kann ich es schaffen, dass die mail dort erscheint wenn ich sie z.B von meinem Outlook-Konto verschicke?
Ich schicke über SMTP und muss deshalb einen Host & Absender Adresse angeben (wird von Datei gelesen).
Hat jemand eine Idee?

Das wesentliche passiert hier:

```
try
            {
                Properties props=new Properties();
                props.put("mail.host", SammelMailFrame.hostField.getText());
                
                Session mailConnection=Session.getInstance(props,null);
                final Message msg=new MimeMessage(mailConnection);
                
                Address to=new InternetAddress(SammelMailFrame.toField.getText());
                Address from=new InternetAddress(SammelMailFrame.fromField.getText());
                
                msg.setContent(SammelMailFrame.message.getText(), "text/plain");
                msg.setFrom(from);
                msg.setRecipient(Message.RecipientType.TO, to);
                msg.setSubject(SammelMailFrame.subjectField.getText());
                
                Runnable r = new Runnable()
                {
                    public void run()
                    {
                        try
                        {                            
                            Transport.send(msg);
                        }
                        catch (Exception e)
                        {
                            e.printStackTrace();
                        }
                    }
                };
                Thread t = new Thread(r);
                t.start();
                
                SammelMailFrame.message.setText("");
            }
            catch (Exception e1)
            {
                e1.printStackTrace();                
            }
```


----------



## Bert Brenner (20. Jun 2005)

Sie taucht bei Outlook deshalb nicht im Postausgang auf weil sie mit Outlook nicht gesendet wurde.

Einfache Lösung: Eine Kopie der Mail an den Absender schicken.

Andere Lösung mit JNI: MAPI oder OfficeAutomation


----------



## robertpic71 (21. Jul 2005)

Ich habe mich auch mit dieser Problematik beschäftigt und möchte auch noch meinem Lösungsweg kurz beschreiben.

Ich hänge die e-Mail direkt in das IMAP-e-Mail-Konto, in den Ordner "sent". 

Nachdem die Message msg aufbereitet wurde, lege ich sie in den Folder:


```
// zu IMAP-Konto verbinden
Store store = session.getStore( "imap" );
store.connect( host, user, passwd );

// Folder für gesendet mit READ_WRITE aufmachen
Folder folder = store.getFolder("inbox.sent");
folder.open( Folder.READ_WRITE );

// e-Mail in ein Array schieben
Message msgs[] = {msg};

// und zum Ordner hinzufügen
folder.appendMessages(msgs);

folder.close( false );
store.close();
```


Das Ganze funktioniert natürlich nur, wenn man einen Mail-Server mit IMAP4 hat und die Zugangsdaten des Users besitzt. Auch die Folder müssen nicht zwingend "sent" heißen, also nicht unbedingt was für Heim-PC's.

Für den Einsatz im Firmenumfeld ist die Möglichkeit auf jeden Fall optimal. Damit können auch Serverjobs, welche im Namen eines Sachbearbeiters e-Mails versenden, die e-Mail auch in den "Gesendet Ordner" des jeweiligen Sachbearbeites stellen.

Auch die Möglichkeit die "öffentlichen Ordner" von IMAP damit  zu versorgen, ist ebenfalls eine interessante Möglichkeit.

LG Rob


----------

