Email versenden

bandy

Bekanntes Mitglied
Hallo ich moechte mit einem Programm aus dem Buch Java ...Insel eine email an ein Hotmail-Konto versenden, ist in dem Code etwas falsch oder veraltet?:bahnhof:
Was ich da auch probierte, ging nicht.

Java:
import java.util.*;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.*;

public class SendJavaMail{
  public static void postMail( String recipient,
							                 String subject,
							                 String message, String from )
	  throws MessagingException{
		Properties props = new Properties();
		props.put( "mail.smtp.host", "mail.hotmail.com" );

		Session session = Session.getDefaultInstance( props );

		Message msg = new MimeMessage( session );

		InternetAddress addressFrom = new InternetAddress( from );
		msg.setFrom( addressFrom );

		InternetAddress addressTo = new InternetAddress( recipient );
		msg.setRecipient( Message.RecipientType.TO, addressTo );

		msg.setSubject( subject );
		msg.setContent( message, "text/plain" );
		Transport.send( msg );
  }

  public static void main( String[] args ) throws Exception{
    postMail( "meineemail@hotmail.com",
              "Tolles Buch",
              "Wow. Das Buch ist schön zu lesen",
              "info@mailserver.com" );
  }
}


Fehlermeldung:

[XML]Exception in thread "main" javax.mail.MessagingException: Could not connect to SMTP host: mail.hotmail.com, port: 25;
nested exception is:
java.net.ConnectException: Connection timed out: connect
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1934)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:638)
at javax.mail.Service.connect(Service.java:295)
at javax.mail.Service.connect(Service.java:176)
at javax.mail.Service.connect(Service.java:125)
at javax.mail.Transport.send0(Transport.java:194)
at javax.mail.Transport.send(Transport.java:124)
at SendJavaMail.postMail(SendJavaMail.java:28)
at SendJavaMail.main(SendJavaMail.java:32)
Caused by: java.net.ConnectException: Connection timed out: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:69)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:337)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:198)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:180)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:157)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391)
at java.net.Socket.connect(Socket.java:579)
at java.net.Socket.connect(Socket.java:528)
at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:288)
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:231)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1900)
... 8 more
[/XML]
 

bandy

Bekanntes Mitglied
Weil mail.hotmail.com nicht stimmt?! Der DNS sagt es sei u.A. mx1.hotmail.com.

Java:
mx1.hotmail.com

stimmt auch nicht, bringt wieder seine Fehlermeldung


[XML]Exception in thread "main" javax.mail.MessagingException: Could not connect to SMTP host: mx1.hotmail.com, port: 25;
nested exception is:
java.net.ConnectException: Connection timed out: connect
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1934)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:638)
at javax.mail.Service.connect(Service.java:295)
at javax.mail.Service.connect(Service.java:176)
at javax.mail.Service.connect(Service.java:125)
at javax.mail.Transport.send0(Transport.java:194)
at javax.mail.Transport.send(Transport.java:124)
at SendJavaMail.postMail(SendJavaMail.java:28)
at SendJavaMail.main(SendJavaMail.java:32)
Caused by: java.net.ConnectException: Connection timed out: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:69)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:337)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:198)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:180)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:157)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391)
at java.net.Socket.connect(Socket.java:579)
at java.net.Socket.connect(Socket.java:528)
at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:288)
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:231)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1900)
... 8 more[/XML]
 
I

irgendjemand

Gast
der wohl typischste fehler

sie dir mal genau an wie du send() aufrufst ...

also STATIC ...

und laut api-doc verwendet diese variante ihre völlig eigenen werte ... heißt : deine schön vorbereitete session ist nutzlos da diese so nicht genutzt wird

ich habe mal auf tut.de ein tut über java-mail gemacht

E-Mails mit JavaMail versenden @ tutorials.de: Tutorials, Forum & Hilfe

du musst dir von deiner Session ein Transport-objekt holen ... und kein static mit eigenen werten verwenden ...

leider findet man diesen fehler in fast allen tuts die sich mit java-mail auseinander setzen ...
 

Der Müde Joe

Top Contributor
Ich mag das mit den Props eh net...Auch nicht das statische Zeugs..drum so:
(Wobei hier die Prop trotzdem noch gesetzt werden muss.)
Java:
package ch.dmj.faq.mail;
 
import java.io.IOException;
import java.util.Properties;
 
import javax.mail.Message;
import javax.mail.Message.RecipientType;
import javax.mail.MessagingException;
import javax.mail.NoSuchProviderException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.URLName;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
 
 
class SimpleMail {
 
    // login data
    private static final String TYPE = "smtp"; // smtps für secure
    private static final String HOST = "localhost";
    private static final String USER = "sysadmin";
    private static final String PASSWD = "password";
    private static final int PORT = 25;
    // send data
    private static final String SENDER = "sysadmin@localhost";
    private static final String RECIPIENT = "test@localhost";
 
    public static void main(String[] args) throws Exception {
        sendMail();
    }
 
    private static void sendMail() throws NoSuchProviderException, MessagingException,
            AddressException, IOException {
        Properties props = new Properties();
        Session session = Session.getDefaultInstance(props);
        session.setDebug(true);
        Transport tr = session.getTransport(new URLName(TYPE, HOST, PORT, null, USER, PASSWD));
        Message message = new MimeMessage(session);
        message.addRecipient(RecipientType.TO, new InternetAddress(RECIPIENT));
        message.addFrom(new InternetAddress[] { new InternetAddress(SENDER) });
        //subject
        message.setSubject("the subject");
        //the multipart
        MimeMultipart multiPart = new MimeMultipart("mixed");
        // a plaintext part
        MimeBodyPart body1 = new MimeBodyPart();
        body1.setContent("blub", "text/plain");
        multiPart.addBodyPart(body1);
        // a html part
        MimeBodyPart body2 = new MimeBodyPart();
        body2.setContent("<b>hallo welt</b>", "text/html");
        multiPart.addBodyPart(body2);
        // a picture
//      MimeBodyPart body3 = new MimeBodyPart();
//      body3.attachFile(new File("/home/user/Desktop/picture"));
//      multiPart.addBodyPart(body3);
        // set the content to the multipart
        message.setContent(multiPart);
        //send
        tr.connect();
        tr.sendMessage(message, message.getAllRecipients());
        tr.close();
    }
}
 

bandy

Bekanntes Mitglied
der wohl typischste fehler

sie dir mal genau an wie du send() aufrufst ...

also STATIC ...

und laut api-doc verwendet diese variante ihre völlig eigenen werte ... heißt : deine schön vorbereitete session ist nutzlos da diese so nicht genutzt wird

ich habe mal auf tut.de ein tut über java-mail gemacht

E-Mails mit JavaMail versenden @ tutorials.de: Tutorials, Forum & Hilfe

du musst dir von deiner Session ein Transport-objekt holen ... und kein static mit eigenen werten verwenden ...

leider findet man diesen fehler in fast allen tuts die sich mit java-mail auseinander setzen ...


Danke fuers Tutorial, war nuetzlich und funktioniert auch noch:D

Naja, Porteinstellung ist sogar nicht notwendig, nur Providerlink:)
 
Zuletzt bearbeitet:

bandy

Bekanntes Mitglied
Naja, wuerde gerne noch wissen wie man Anhaenge mit diesem Programm verschicken kann


Java:
import java.util.Properties;
import javax.mail.Address;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class SendMailTLS
{
    public static void main(String[] args) throws Exception
    {
        String host="smtp.gmail.com";
        int port=587;
        String user="username";
        String pass="password";
        
        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("recipent@host.tld");
        
        Message message=new MimeMessage(session);
        message.setFrom(new InternetAddress(user));
        message.setRecipients(Message.RecipientType.TO, addresses);
        message.setSubject("TEST SUBJECT");
        
        message.setText("text/plain BODY");
        
        transport.sendMessage(message, addresses);
        System.out.println("SEND");
        
        transport.close();
    }
}


Ich habe versucht es so zu erweitern:

Java:
  message.setFileName("C:/Users/x/Desktop/Beans.zip");


nun wenn jetzt eine email bei mir ankommt, dann wird dort Anhang angezeigt, aber diser betraegt immer 0,0kb, ist also leer, warum und wie kann mann es beheben? :bahnhof:
 
J

JohannisderKaeufer

Gast
Wenn die Nachricht Anhänge oder Attachments enthalten soll, so benötigt man einen sogenannten javax.mail.MultiPart.

Damit kann man eine MultiPart-Nachricht erstellen. Eine MultiPart Nachricht besteht dann aus ein oder mehreren BodyParts, wobei du für jede Datei einen BodyPart benötigst.

Das sollten mal genug Infos zum recherchieren sein.

Ach ja, das setFileName setzt lediglich den Namen, du kannst ja theoretisch eine Datei die du versenden möchtest onTheFly generieren, ohne sie irgendwo abspeichern zu müssen. Beim empfänger, sollte dann aber ein Dateiname vorhanden sein, damit er was damit anfangen kann.

setFileName wirft auch keine Exception, wenn die Datei nicht vorhanden ist.
setFileName sollte auch nicht den Pfad (C:/bla/) sondern nur den Dateinamen enthalten (foo.bar).
 
Zuletzt bearbeitet von einem Moderator:
I

irgendjemand

Gast
@TO

mein tutorial war damals auch nur dafür gedacht um zu zeigen wie man einfache text/plain e-mails verschickt ...
geplant war mal eine größere tutorial-serie ... aber da sowohl auf tut.de als auch hier nur getrollt wird und scheinbar der rest der "java-community" probleme mit hat wenn ich gegenüber anderen user meine meinung offen sage *z.B. wiederholtes , aggressives hinweisen auf GooGLe / SuFu , dierekte nennung von eventuellen problemen / sicherheitsrisiken , und auch manchmal ziemlich aggressives aufregen über "n00bz" die einfach nicht in der lage sind sich halbwegsverständlich auszudrücken oder die sich im vorfeld keinerlei gedanken über die umsetzung gemacht haben sondern nur im kopf haben : das will ich mit java umsetzen , egal wie* und ich desshalb sowohl hier als auch "da drüben" mit diversen nicks perm-bans kassiert habe kam es leider nie zu einer fortsetzung dieser tut-reihe

geplant waren unter anderem noch

- mails empfangen via POP3
- attachments *sowohl senden via SMTP als auch empfangen via POP3*
- verwaltung eines e-mail kontos via IMAP
- komprimierung und verschlüsselung

außerdem wollte ich als letztes noch eine zusammfassung hierrüber schreiben
- kleine spielerein welche man mit hilfe der javamail-api noch so umsetzen kann

aber naja ... da wohl niemand bereit ... oder sage ich mal lieber : in der lage dazu ist mit mir umzugehen *oh was ich im RL schon an problemen desswegen hatte* ... kann ich nur sagen : ich für meinen teil habe diese insgesamt 6 verschiedenen punkte soweit implementiert wie ich sie brauche *einiges nur als referezen-impl ... aber voll funktionsfähig* ... diese aber auf grund scheinbar mangeldener interesse oder unlust sich mit meinen threads zu beschäftigen nicht public gemacht habe und diese wahrscheinlich auch nur innerhalb meines freundes-kreises weitergeben werden ...

ich weis ... hilft dir grad wenig ... aber auch dir gegenüber möchte ich erwähnen

sowohl die sufu dieses boards ... als auch die sufu anderer seiten ... sowie GooGLe liefern dir zu

"java mail attachment"

sowas von genug seiten , tuts und sonst was das du dir mit hilfe des codes den du schon lauffähig hast , alles zusammen schreiben könntest ... und das sogar ohne irgendjemanden weiterhin zu fragen wie das oder jenes geht ... man findet zu diesem thema ALLES bei google ... auch wenn vieles nicht mehr ganz aktuell oder gar jemals korrekt war *beliebtester fehler z.b. static-call von Transport.send(Message) ... was du aber mit hilfe meines tut's lösen konntest* ... so kann man durch testen , lesen der api-doc sowie kombination von verschiedenen codes alles lauffähig zusammen bekommen ...
 

bandy

Bekanntes Mitglied
Ihr habt beide so viel geschrieben, aber hat leider nicht viel gebracht:noe:

Ich habe in dieser Nacht und den ganzen Vormittag ca. 25 Quelltexte hierzu gegoogelt und ausprobiert, leider niergendwo etwas funktionsfaehiges. So viele Authoren die ueberzeugend von Dingen schreiben die nicht funktionieren:oops:

Naja, nun habe ich von diesem ganzen Muell mir etwas zusammen gebastellt was Text-Dateien versenden kann, werde es jetzt testen was fuer Datenformate es noch versenden kann.

Aber Danke trotzdem.
 
I

irgendjemand

Gast
genau ... wenn du es dann hinbekommen hast kannst du doch das ergebnis hier posten ...

dann bist DU der überzeugt davon schreiben kann das es funktioniert =D *grins*
 
I

irgendjemand

Gast
Die benutzen dort
Code:
send()
auch static. Hmmm.

ich darf mal kurz aus der DOC zitieren

Note that send is a static method that creates and manages its own connection. Any connection associated with any Transport instance used to invoke this method is ignored and not used. This method should only be invoked using the form Transport.send(msg);, and should never be invoked using an instance variable.

ich weis nicht ob es reicht wenn man eine Session mit AUTH und LOGIN und HOST und sowas alles erstellt ... sich davon eine Message holt ... und diese via Transport.send(Message) abschickt ...

als ich damals mit javamail angefangen habe hat genau DAS zumindest bei g-mail NICHT funktioniert ...

problem resultiert aus der arbeitsweise dieser static-method : das Transport-objekt hat dann keine daten für Server , Port , AUTH , verschlüsselung , login-daten , etc ...
natürlich müsste sich alles via getter über eine lange object-chain holen lassen ... aber ich denke doch das es da irgendwo ein stolperstein gibt ...

bin gerne offen für funktionierende widerlegung ... aber so lange ich die nicht habe kann ich nur von mir sagen : bei g-mail funktioniert das NICHT
 
I

irgendjemand

Gast

GMX("mail.gmx.net", 25, "login", "passwort", "absender")
GOOGLEMAIL("smtp.googlemail.com", 25, "login", "passwort", "absender")
ARCOR("mail.arcor.de", 25, "login", "passwort", "absender")
WEB("smtp.web.de", 25, "login", "passwort", "absender")
YAHOO("smtp.mail.yahoo.de", 25, "login", "passwort", "absender")

ich weis nicht wer DA gepennt hat .. aber alleine die ports sind falsch ... und die waren auch 2009 schon nicht so ...
ebenfalls fehlt das ganze AUTH sowie SSLv2 bzw SSLv3/TLSv1 *z.b. bei g-mail und Web.de erforderlich*

DAS soll die beste seite für java-mail sein ... danke ... da stecken mehr fehler drin als wenn ich google dierekt nach einem beispiel frage ...
 

bandy

Bekanntes Mitglied
Wenn du das ausgetestet hast, kannst du ja die fertige Klasse hier vorstellen.


Wieso, wollt ihr das auch haben?:bahnhof:

Ich wollte eigentlich es von euch haben und die ganze Muehe mir sparen:shock:

Aber gut, helfe euch auch mal.

Java:
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;

public class EmailWithAttachments{
   private static MimeBodyPart messageBodyPart;

public static void main(String [] args) throws MessagingException{ 
      String pass="meinPasswort";
      String user="absenderemail@gmail.com";
      int port=587;
     
      Properties properties = System.getProperties();
      properties.put("mail.smtp.auth", "true");
      properties.put("mail.smtp.starttls.enable", "true");
      //Empfaenger email
      String to = "empfaenger@hotmail.com";
      String host = "smtp.gmail.com";
      try{
      Session session = Session.getDefaultInstance(properties);
      Transport transport=session.getTransport("smtp");
      transport.connect(host, port, user, pass);
	
      Address[] addresses=InternetAddress.parse(to);
      Message message = new MimeMessage(session);
      message.setFrom(new InternetAddress(user));
      message.addRecipients(Message.RecipientType.TO, addresses);
      message.setSubject("This is the Subject Line!");
      message.setText("This is actual message");
      Multipart multipart = new MimeMultipart();
      messageBodyPart = new MimeBodyPart();
      multipart.addBodyPart(messageBodyPart);
      //Hier Dateiname was angehaengt werden soll eingeben, wenn es im gleichen Ordner wie das Programm evt. den Pfad auch noch
      String filename = "picture.JPG";
      DataSource source = new FileDataSource(filename);
      messageBodyPart.setDataHandler(new DataHandler(source));
      messageBodyPart.setFileName(filename);
      message.setContent(multipart );
      transport.sendMessage(message, addresses);
      System.out.println("Sent message successfully....");
      transport.close();
      }catch (MessagingException mex) {
         mex.printStackTrace();
      }
   }
}



Es werden noch zusaetzlich Librariries mail.jar benoetigt damit es funkt.
 
I

irgendjemand

Gast
na ... so sauber ist dein code aber auch noch nicht ..

1) "throws" und "try-catch"
wenn du innerhalb der methode in einem try-catch block eine exception fängst ... dann musst du diese nicht zusätzlich mit "throws" nach "oben" weiterwerfen ...
throws und try-catch zusammen machen erst sinn wenn es verschiedene exceptions sind
wenn du deinen code sauber formatiert hättest hätte man das auch schneller gesehen *ich hab mich erst über das catch ohne try gewundert ... dann aber das try beim re-formatieren doch gefunden*

2) MimeMessage.setText(String)
da hast du wohl den sinn von MultiPart noch nicht ganz verstanden ...
in deinem code wird der inhalt der e-mail erst mit einem text/plain string gesetzt ... später aber mit dem MultiPart vollständig überschrieben ...
also sendet dein code nur das attachment ... aber keinen text ...
dieser muss ebenfalls in einem BodyPart untergebracht sein und sollte vor dem attachment dem MultiPart-objekt hinzugefügt werden

3) interfaces / abstract super-class vs direct
den MimeMultipart castest du nach außen als "normalen" MultiPart
den MimeBodyPart aber hast du dierekt als diesen typ deklariert
du solltest dich für eine variante entscheiden ... wobei nach java der abstraktere super-typ stets zu bevorzugen ist ... hier also die variable wenn dann nur als BodyPart deklarieren

4) pfad
der pfad hat in setFilename(String) NICHTS zu suchen ...
natürlich ist er wichtig für das laden der datei und muss daher dem konstruktor des DataHandler übergeben werden ... aber auch NUR DA ... nirgends anderst *ich hab nicht ausprobiert was passiert wenn du den pfad mit angibst ... dürfte allerdings zu fehlern führen*
auch sollte der pfad absolut sein *wird spätestens dann wichtig wenn du mit paketen arbeitest und/oder das ganze in ein jar packst*
auch sollte der pfad unabhängig vom OS nur mit "/" geschrieben werden ...
damit später im DataHandler konstruktor kein fehler auftritt muss der pfad außerdem mit einem "/" enden

an sich also eine ganz solide grundlage in der dann doch leider einige fehler stecken

ich hab mir die mühe gemacht und den code nochmals überarbeitet
getestet : von g-mail zu web.de
mit text-part und attachment

*für unsere perfektionisten : ich hab mir mal die mühe gemacht und "saubere" imports verwendet ... wobei der compiler am ende doch nur das hier draus macht :
Java:
import java.io.PrintStream;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.*;
import javax.mail.internet.*;
de-compiled mit JAD ...
*woher plötzlich das java.io.PrintStream kommt weis ich nicht ...
wer mir also noch EIN MAL an den kopf haut von wegen es ist besser wenn man jede klasse einzeln importiert anstatt gleich das ganze paket hat hier den beweis das der compiler es sowieso macht ...
sinn machen würde es erst bei z.b. java.util.Date vs java.sql.Date ...*


code
Java:
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";
		int port=587;
		String user="USER@googlemail.com";
		String pass="PASS";
		
		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("TO@web.de");
		
		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");
		
		BodyPart attachmentBodyPart=new MimeBodyPart();
		String path="ABSOLUTER PFAD";
		String filename="FILENAME";
		DataSource source=new FileDataSource(path + filename);
		attachmentBodyPart.setDataHandler(new DataHandler(source));
		attachmentBodyPart.setFileName(filename);
		
		multipart.addBodyPart(textBodyPart);
		multipart.addBodyPart(attachmentBodyPart);
		message.setContent(multipart);
		
		transport.sendMessage(message, addresses);
		System.out.println("SEND");
		
		transport.close();
	}
}

ich hoffe DARAN hat jetzt wirklich keiner mehr was auszusetzen
 

bandy

Bekanntes Mitglied
na ... so sauber ist dein code aber auch noch nicht ..

1) "throws" und "try-catch"

ich hoffe DARAN hat jetzt wirklich keiner mehr was auszusetzen


Auch wenn man dran etwas verbessern kann, es funktioniert problemlos im Vergleich zu
alldem was vorgestellt wurde, selbst vom der Tutorial vom Hersteller fukte nicht

....... try und catch waren mir nach all diesen Versuchen so egal, daran dachte ich schon nicht mehr, wichtig war dass es endlich das tut was es soll:D Es gibt keine Fehler mehr etc. und es ist gut so, welcher Tutorial hat es bis jetzt getan? :bahnhof:
 
I

irgendjemand

Gast
wichtig war dass es endlich das tut was es soll [...] welches Tutorial hat es bis jetzt getan?

da muss ich dir allerdings bedingungslos zustimmen *grins*

na gut ... hoffe du kannst mit dem "korrigierten" code was anfangen ...
ich sag ja auch nicht das dein code schlecht ist ... oder gar das meiner besser wäre ...
deiner war nur nachem ersten drübergucken recht ... schräg ... nichts für ungut ...
hab das ganze halt nur so weit "geändert" das es sauber implementiert ist und halt auch noch den teil hinzugefügt der dann auch wirklich n text mitschickt ...

hope it helps =D
 

Crian

Top Contributor
[c]The import javax.mail cannot be resolved[/c]

Muss ich da noch eine Bibliothek beschaffen? Ich dachte die javax-Bibliotheken würden schon dabei sein.
 

HoaX

Top Contributor
ich weis nicht wer DA gepennt hat .. aber alleine die ports sind falsch ... und die waren auch 2009 schon nicht so ...
ebenfalls fehlt das ganze AUTH sowie SSLv2 bzw SSLv3/TLSv1 *z.b. bei g-mail und Web.de erforderlich*

DAS soll die beste seite für java-mail sein ... danke ... da stecken mehr fehler drin als wenn ich google dierekt nach einem beispiel frage ...

Derjenige, der gepennt hat, bist du! Port 25 ist Standard und wird/muss von allen Anbietern angeboten werden.
Stell dir vor du holst dir einen eigenen Server auf dem die Domain irgendjemand.de. liegt.
Wenn dir jetzt jemand von seinem gmx.de-Account eine Mail sendet, dann verwendet er ja den SMTP-Server von GMX, und dieser leitet die Mail weiter an deinen SMTP-Server. Dein Server erkennt dass die Nachricht für die eigenen Domain bestimmt ist und nimmt die Nachricht an.
Wenn du jetzt Port 25 sperrst, woher soll dann gmx.de wissen wie es dir die Mail zustellen soll? Im DNS liegen mittels MX-Record nur die IPs der SMTP-Server, aber keine Ports. Port 25 ist bei allen offen und funktioniert!
 

bandy

Bekanntes Mitglied
Port 25 ist bei allen offen und funktioniert!

Wenn ich den Port von 587 auf 25 aendere, bringt es Fehlermeldung.


[XML]javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 25;[/XML]


Und das auch bei yahoo und hotmail, mit Port 587 geht es bei all diesen Anbietern ohne Probleme.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Email versenden, muss Methode static sein? Java Basics - Anfänger-Themen 7
M Email versenden Outlook, attached File, ohne Anmeldung Java Basics - Anfänger-Themen 4
K Email versenden mit Java Java Basics - Anfänger-Themen 4
G Email ueber Socks versenden Java Basics - Anfänger-Themen 6
achillesat Email versenden Java Basics - Anfänger-Themen 5
S Mit Java Email versenden Java Basics - Anfänger-Themen 7
A Java Mail 1.4.4 - Email versenden (HOTMAIL SMTP auth) Java Basics - Anfänger-Themen 9
B Problem beim Email versenden mit Javamail Java Basics - Anfänger-Themen 5
P Email versenden für einsteiger Java Basics - Anfänger-Themen 6
G eMail versenden Java Basics - Anfänger-Themen 31
M Email versenden, ohne eigenen pop3-server? Java Basics - Anfänger-Themen 7
H eMail-Adressen-Validierung Java Basics - Anfänger-Themen 7
F RegEx für Email Java Basics - Anfänger-Themen 2
C Sicherheitslücke beheben & Email per Java? Java Basics - Anfänger-Themen 38
B Email Client in der eigenen Software einbauen Java Basics - Anfänger-Themen 3
B java.mail - Email antworten und Content ausgeben Java Basics - Anfänger-Themen 4
G Email senden MailDev Java Basics - Anfänger-Themen 13
B Email versand - aber akzeptiert auch falscher Username und Passwort??? Java Basics - Anfänger-Themen 1
K Einzelne Email verschieben nicht möglich Java Basics - Anfänger-Themen 3
N Email mit Anhang - File not Found Java Basics - Anfänger-Themen 1
G Email-sending Button Java Basics - Anfänger-Themen 9
F ClassNotFound - Email Java Basics - Anfänger-Themen 0
B Pattern für Email Liste Java Basics - Anfänger-Themen 3
W Mozilla Thunderbird email an alle Kontakte Java Basics - Anfänger-Themen 3
8 Eigenes Bild in email einfügen Java Basics - Anfänger-Themen 1
S Email verschicken Java Basics - Anfänger-Themen 2
M Java Email Versand mit freenet Java Basics - Anfänger-Themen 7
S Email und SMTP Java Basics - Anfänger-Themen 3
G Email Adresse in JTextField ueberpruefen Java Basics - Anfänger-Themen 5
G EMail-Versand funktioniert nicht Java Basics - Anfänger-Themen 2
G eMail verschicken in einem Java-Programm Java Basics - Anfänger-Themen 8
G Email Adresse auf Richtigkeit prüfen Java Basics - Anfänger-Themen 11
J Email-Anbindung geht net Java Basics - Anfänger-Themen 10
C Aus Java eine Email wo der Body den Inhalt aus einer .... Java Basics - Anfänger-Themen 6
F Umlaute beim versenden von SMS Java Basics - Anfänger-Themen 10
R Java E-mail versenden. SMTP Port Fehler Java Basics - Anfänger-Themen 8
Henri Mail zu einer Gruppe versenden Java Basics - Anfänger-Themen 10
A JSON versenden Java Basics - Anfänger-Themen 2
S JavaMail API E-Mail versenden Probleme Java Basics - Anfänger-Themen 5
T Variable an Steuerung versenden Java Basics - Anfänger-Themen 5
F Buffered Image über Socket versenden Java Basics - Anfänger-Themen 6
L Bild versenden über Client/Server Java Basics - Anfänger-Themen 10
N Files mit Byte an Socket versenden Java Basics - Anfänger-Themen 2
T Dateien an Webspace versenden Java Basics - Anfänger-Themen 4
J Dateien automatisch per Mail versenden Java Basics - Anfänger-Themen 3
G Nachrichten versenden Java Basics - Anfänger-Themen 11
G Private Messages versenden Java Basics - Anfänger-Themen 13
H JavaMail: Beim Versenden tritt ein Fehler auf! Java Basics - Anfänger-Themen 4
G Mail versenden, wenn Mikrofon einen bestimmten Pegel erreich Java Basics - Anfänger-Themen 3
P MMs via Java versenden Java Basics - Anfänger-Themen 7
D Problem beim E-Mail versenden Java Basics - Anfänger-Themen 6
A Serialisierbarer Stream? - File per RMI versenden Java Basics - Anfänger-Themen 4
A Binär-Datei versenden übers Internet Java Basics - Anfänger-Themen 2
M Beliebige Dateien per TCP versenden und speichern Java Basics - Anfänger-Themen 2
M Einfache HTML Mail versenden , suche Beispiel Java Basics - Anfänger-Themen 5
A Versenden von Nachrichten, Argumente, Prototypen? Java Basics - Anfänger-Themen 5
M E-Mail im Netzwerk über Microsoft Exchange Server versenden? Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben