# Emailprogramm



## wusli (3. Apr 2012)

Hallo, ich habe bei meinem Java Programm einen Fehler
Code:

```
import javax.mail.*;
import javax.mail.internet.*;
import javax.mail.Transport;

import java.util.Properties;

class Emailprogramm2 {
    public static void main(String[] args) throws Exception{
      Properties props = new Properties();
      props.setProperty("mail.transport.protocol", "smtp");
      props.setProperty("mail.host", "web.de");
      props.setProperty("mail.user", "*****");
      props.setProperty("mail.password", "*****");
      

      Session mailSession = Session.getDefaultInstance(props, null);
      Transport transport = mailSession.getTransport();

      MimeMessage message = new MimeMessage(mailSession);
      message.setSubject("Testing javamail plain");
      message.setContent("This is a test", "text/plain");
      message.addRecipient(Message.RecipientType.TO,
           new InternetAddress("larsvogt21@googlemail.com"));

      transport.connect();
      transport.sendMessage(message,
          message.getRecipients(Message.RecipientType.TO));
      transport.close();
      
    }
}
```

mit folgender Fehlermeldung:
Exception in thread "main" javax.mail.MessagingException: Could not connect to SMTP host: web.de, port: 25;
  nested exception is:
	java.net.ConnectException: Connection timed out: connect
	at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1008)
	at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:197)
	at javax.mail.Service.connect(Service.java:233)
	at javax.mail.Service.connect(Service.java:134)
	at javax.mail.Service.connect(Service.java:86)
	at com.sun.mail.smtp.SMTPTransport.connect(SMTPTransport.java:104)
	at Emailprogramm2.main(Emailprogramm2.java:26)


Ich benutze Eclipse zum Programmieren und hab auch die Javamail.jar und die activation.jar reingeladen
Kann mir da jemand weiterhelfen?
Danke im vorraus


----------



## maestr0 (3. Apr 2012)

Laut meiner Erkenntnis ist der SMTP Server "web.de" falsch.

Hier steht,dass der SMTP Server "smtp.web.de" lauten muss.
WEB.DE FreeMail Hilfe - Daten und Informationen zu SMTP


----------



## wusli (3. Apr 2012)

jetzt hab ich als smtp, den von web angegeben bekomme aber folgenden Fehler

Exception in thread "main" javax.mail.NoSuchProviderException: No provider for smtp.web.de
	at javax.mail.Session.getProvider(Session.java:436)
	at javax.mail.Session.getTransport(Session.java:631)
	at javax.mail.Session.getTransport(Session.java:612)
	at javax.mail.Session.getTransport(Session.java:598)
	at Emailprogramm2.main(Emailprogramm2.java:18)

hab das selbe auch mit dem von Googlemail versucht, geht auch nicht


----------



## wusli (3. Apr 2012)

```
import javax.mail.*;
import javax.mail.internet.*;
import javax.mail.Transport;

import java.util.Properties;

class Emailprogramm2 {
    public static void main(String[] args) throws Exception{
      Properties props = new Properties();
      props.setProperty("mail.transport.protocol", "smtp");
      props.setProperty("mail.host", "ntserver.auteq-software.local");
      props.setProperty("mail.user", "lVogt@***.de");
      props.setProperty("mail.password", "******");
      

      Session mailSession = Session.getDefaultInstance(props, null);
      Transport transport = mailSession.getTransport();

      MimeMessage message = new MimeMessage(mailSession);
      message.setSubject("Testing javamail plain");
      message.setContent("This is a test", "text/plain");
      message.addRecipient(Message.RecipientType.TO,
           new InternetAddress("lVogt@*****.de"));

      transport.connect();
      transport.sendMessage(message,
          message.getRecipients(Message.RecipientType.TO));
      transport.close();
      
    }
}
```

so hab den Code neu geändert, da er nur über lokales Netzwerk laufen soll, bekomme aber folgende Fehlermeldung

Exception in thread "main" javax.mail.MessagingException: can't determine local email address
	at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:698)
	at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:388)
	at Emailprogramm2.main(Emailprogramm2.java:27)


----------



## maestr0 (3. Apr 2012)

Hast es nun hinbekommen und wenn ja,woran lag es nun,wenn ich mal fragen darf?


----------



## irgendjemand (3. Apr 2012)

also für web.de hab ich hier mal einen funktionierenden beispiel code
dieser funktioniert so übrigens auch mit googlemail


```
import java.util.Properties;
import javax.mail.Address;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
public class SendMailTLS
{
	public static void main(String[] args) throws Exception
	{
		//String host="smtp.gmail.com";
		String host="smtp.web.de";
		int port=587;
		//String user="USERNAME@googlemail.com";
		String user="USERNAME@web.de";
		String pass="PASSWORT";
		
		Properties props=new Properties();
		props.put("mail.smtp.auth", "true");
		props.put("mail.smtp.starttls.enable", "true");
		
		Session session=Session.getInstance(props);
		Transport transport=session.getTransport("smtp");
		transport.connect(host, port, user, pass);
		
		Address[] addresses=InternetAddress.parse("EMPFAENGER@PROVIDER.TLD");
		
		Message message=new MimeMessage(session);
		message.setFrom(new InternetAddress(user));
		message.setRecipients(Message.RecipientType.TO, addresses);
		message.setSubject("TEST SUBJECT");
		
		Multipart multipart=new MimeMultipart();
		
		BodyPart textBodyPart=new MimeBodyPart();
		
		textBodyPart.setText("text/plain BODY");
		
		multipart.addBodyPart(textBodyPart);
		message.setContent(multipart);
		
		transport.sendMessage(message, addresses);
		System.out.println("SEND");
		
		transport.close();
	}
}
```


----------

