# email senden



## carpe (14. Feb 2010)

Hallo Leute,

Ich habe ein Servlet programmiert der Formulardaten entgegen nimmt und
sie an eine E-mail Adresse sendet.
Der Server(apache-tomcat-6.0.18) ist local auf meinem Rechner installiert.

Ich habe mir vorher aus diesem Forum Rat geholt und bin auf dieser
Java ist auch eine Insel – 16.11 E-Mail Seite gelandet .

Jetzt habe Ich diesen codeabschnitt angewendet, aber Ich empfange keine E-Mail.
Liegt es vielleicht daran das meine Server local auf meinem Rechner installiert ist und
Ich dabei was beachten muss.
Im Libraries(NetBeans IDE) habe Ich mail.jar und activation.jar hinzugefügt.


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

try{
       String empfänger = "";
       String betreff = "";
       String nachricht = "";
       String sender = "";

        Properties props = new Properties();
        props.put( "mail.smtp.host", sender );
        Session session = Session.getDefaultInstance( props );
        Message msg = new MimeMessage( session );
        InternetAddress addressFrom = new InternetAddress(sender);
        msg.setFrom( addressFrom );
        InternetAddress addressTo = new InternetAddress(empfänger);
        msg.setRecipient( Message.RecipientType.TO, addressTo );
        msg.setSubject(betreff);
        msg.setContent( nachricht, "text/plain" );
        Transport.send( msg );


        }catch(MessagingException e){
            System.out.println(e.getMessage());

        }
```

Danke im Voraus


----------



## madboy (14. Feb 2010)

```
String sender = "";
 //...
        props.put( "mail.smtp.host", sender );
//...
        InternetAddress addressFrom = new InternetAddress(sender);
```
als smtp host und Absender können nicht die selben Daten stehen, schon gar nicht ein leerer String 
mail.smtp.host sollte ein Hostname oder eine IP-Adresse sein, die Absenderadresse eine gültige Mailadresse.

Eigentlich würde ich sogar eine Exception erwarten und nicht nur eine nicht zugestellte Mail.

Was noch interessant ist, wenn es nicht klappt wenn sender korrekt gesetzt ist:
- von wo aus verschickst du die Mails? Lokaler Rechner über DSL oder Server mit fester IP?
- wo hin schickst du die Mails? An localhost oder an z.B. gmx, web.de, ...?
- eventuelle Exceptions mit e.printStackTrace()
- KSKB

EDIT: gültige Mailadresse = ABC@XYZ.AB, also gültiges Format. Ob sie existiert ist erst mal egal (wenn du an dich selber, also localhost schickst).


----------



## carpe (15. Feb 2010)

Hallo ,

Info:
-Der Server(apache-tomcat-6.0.18) ist local auf meinem Rechner installiert.
-Die Mail sende Ich an web.de
-Die Exception lautet:501 Keine Authentifizierung, oder POP3-Anmeldung zu weit in der Vergangenheit . / Authentification failed, or POP3 logon too old

Das heisst Ich muss mich authentifizieren , aber wie .
Steht leider nicht im meinem Buch ...

Was Ich nicht verstehe ist warum man einen absender angeben muss.
Die Nachricht kommt ja von einem Formular->Servlet->smtp.web.de .

Naja Ich versuchs mal weiter.






```
String empfänger = "abc@web.de";
    String betreff = "Neue Anfrage";
    String nachricht = "Hallo....";
    String absender = "def@web.de";

    try{

        Properties props = new Properties();        
        props.put("mail.smtp.host","smtp.web.de");
        Session session = Session.getDefaultInstance( props );
        Message msg = new MimeMessage( session );
        InternetAddress addressFrom = new InternetAddress(absender);
        msg.setFrom( addressFrom );
        InternetAddress addressTo = new InternetAddress(empfänger);
        msg.setRecipient( Message.RecipientType.TO, addressTo );
        msg.setSubject(betreff);
        msg.setText(nachricht);
        msg.setContent( nachricht, "text/plain" );//das stand nicht im Buch auf der Internetseite, siehe Link
        Transport.send( msg );
      }catch(MessagingException e){
            System.out.println(e.getMessage());
      }
```


----------



## homer65 (15. Feb 2010)

Also ich versende EMail per googlemail. Dabei ist auch eine Authentifizierung notwendig.

```
package mail;
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
public class Mailversand
{
	public void senden(MailInfo info)
	{
		Properties props = new Properties();
		props.put("mail.smtp.starttls.enable","true");
		Session session = Session.getDefaultInstance(props,null);
		MimeMessage message = new MimeMessage(session);
		try
		{
			message.setSubject(info.getBetreff());
			message.setText(info.getText(),"UTF-8");
			Address address = new InternetAddress(info.getVon());
			message.setFrom(address);
			Address toAddress = new InternetAddress(info.getNach());
			message.addRecipient(Message.RecipientType.TO,toAddress);
			Transport transport = session.getTransport("smtp");
			transport.connect(info.getHost(),info.getBenutzer(),info.getPasswort());
			transport.sendMessage(message,message.getAllRecipients());
			transport.close();
		}
		catch (Exception e)
		{
			Protokol.write("Mailversand:Exception:");
			Protokol.write(e.toString());
		}
		return;
	}
}
```


```
package mail;
public class MailInfo 
{
	private String von = "homer65@googlemail.com";
	private String nach = "christian-ehm@gmx.de";
	private String betreff = "Test";
	private String text = "TestMessage";
	private String benutzer = "homer65";
	private String passwort = "xxx";
	private String host = "smtp.googlemail.com";
	public void setBetreff(String s)
	{
		betreff = s;
	}
	public void setHost(String s)
	{
		host = s;
	}
	public void setPasswort(String s)
	{
		passwort = s;
	}
	public void setBenutzer(String s)
	{
		benutzer = s;
	}
	public String getBetreff()
	{
		return betreff;
	}
	public String getBenutzer()
	{
		return benutzer;
	}
	public String getPasswort()
	{
		return passwort;
	}
	public String getHost()
	{
		return host;
	}
	public String getVon()
	{
		return von;
	}
	public String getNach()
	{
		return nach;
	}
	public String getText()
	{
		return text;
	}
	public void setVon(String s)
	{
		von = s;
	}
	public void setNach(String s)
	{
		nach = s;
	}
	public void setText(String s)
	{
		text = s;
	}
}
```


----------



## carpe (20. Feb 2010)

Hallo ,

Danke für deinen Hinweis , jetzt funktioniert es bei mir auch.


----------

