Veröffentlicht 8. Juli 200817 j hallo, ich schreibe grade für die arbeit einen mailclient, also über eine kontaktseite soll eine mail versendet werden. nun habe ich aber das problem das eclipse mir den error: javax.mail.SendFailedException: Sending failed; nested exception is: class javax.mail.MessagingException: Could not connect to SMTP host: localhost, port: 25; nested exception is: java.net.ConnectException: Connection refused: connect ausgibt. Woran könnte das denn wohl liegen. den webserver kann ich auch nicht von meinem rechner aus anpingen. kann das wa sdamit zu tun haben, also das der port nicht freigeschaltet ist für meine ip? oder weiss jemand anderes was da sonst noch falsch sein könnte? meinen quelltext: String smtpHost="25"; String username="username"; String password="passwort"; String antwort="success"; class MailAuthenticator extends Authenticator { private final String user; private final String password; public MailAuthenticator(String user, String password) { this.user = user; this.password = password; } } try { MailAuthenticator auth = new MailAuthenticator(username, password); Properties properties = new Properties(); // Den Properties wird die ServerAdresse hinzugefügt properties.put("serveradresse", smtpHost); // !!Wichtig!! Falls der SMTP-Server eine Authentifizierung // verlangt // muss an dieser Stelle die Property auf "true" gesetzt // werden properties.put("serveradresse", "true"); // Hier wird mit den Properties und dem implements Contructor // erzeugten // MailAuthenticator eine Session erzeugt Session session = Session.getDefaultInstance(properties, auth); try { // Eine neue Message erzeugen Message msg = new MimeMessage(session); // Hier werden die Absender- und Empfängeradressen gesetzt msg.setFrom(new InternetAddress(eMail)); msg.setRecipients(Message.RecipientType.TO,InternetAddress.parse("e-mail", false)); // Die Firma des Senders wird angegeben msg.setText(firma); // Der Name des Absenders wird angegeben msg.setText(name); // Der Betreff und Body der Message werden gesetzt msg.setSubject(nachricht); msg.setText(nachricht); // Datum hinzufügen msg.setSentDate(new Date( )); // Zum Schluss wird die Mail natürlich noch verschickt Transport.send(msg); } catch (Exception e) { e.printStackTrace( ); antwort="failed"; } } catch (Exception ex) { ex.printStackTrace(); } return antwort; }
8. Juli 200817 j Hallo, er versucht sich auf localhost Port 25 zu connecten. Wer ist localhost in dem Fall? properties.put("serveradresse", smtpHost); properties.put("serveradresse", "true"); Ist das richtig? Zwei mal die gleiche Variable mit unterschiedlichen Werten wobei smtpHost bei dir 25 ist. Frank
8. Juli 200817 j wieso auf localhost? bei der serveradresse geb ich ja die ip des mailservers an, oder bin ich wieder zu blöd was zu finden???? Bearbeitet 8. Juli 200817 j von Alive3000 haha
8. Juli 200817 j Wo? Also die Fehlermeldung sagt was anderes. Could not connect to SMTP host: localhost, port: 25 Frank
8. Juli 200817 j ach herje, das ist mir garnicht aufgefallen, aber ich geb für den servernamen eine ip an, wie kann der denn dann auf localhost horchen?
8. Juli 200817 j wie auch immer, ich hab nix geändert und nun bekomme ich java.lang.SecurityException: Access to default session denied ich benutze einen jboss und myfaces. gibt es da irgendeine session die ich benutzen muss, also die vorgefertigt ist? oh man, das bringt mich noch um den verstand EDIT: Also die exception Could not connect to SMTP host: localhost, port: 25 bekomme ich nur wenn ich mein programm im debugg modus teste und die java.lang.SecurityException: Access to default session denied bekomme ich wenn ich meine Seite normal ausführe, also nur den server gestartet hab. sorry das ich quer durch den garten schreibe, aber irgendwie fällt mir immer mehr auf Bearbeitet 8. Juli 200817 j von Alive3000
8. Juli 200817 j Noch mal die Frage. String smtpHost="25"; properties.put("serveradresse", smtpHost); properties.put("serveradresse", "true"); Ist das richtig? Frank
8. Juli 200817 j uja genau, hab jetzt auch versucht das properties.put("serveradresse", "true"); wegzunehmen, aber funktioniert dann trotzdem nicht
8. Juli 200817 j erstmal testweise hab ich sie über der funktion in einem string gespeichert und rufe ihn dann auf, natürlich ohne anführungszeichen Nadine
8. Juli 200817 j also nach dem debuggen kommt immer 14:25:05,468 ERROR [STDERR] javax.mail.SendFailedException: Sending failed; nested exception is: class javax.mail.MessagingException: Could not connect to SMTP host: localhost, port: 25; nested exception is: java.net.ConnectException: Connection refused: connect 14:25:05,468 ERROR [STDERR] at javax.mail.Transport.send0(Transport.java:218) 14:25:05,468 ERROR [STDERR] at javax.mail.Transport.send(Transport.java:80) 14:25:05,468 ERROR [STDERR] at de.tedata.mdo.server.tmpAlternative.KontaktFAQ.saveKontaktdaten(KontaktFAQ.java:85) 14:25:05,468 ERROR [STDERR] at de.tedata.mdo.common.controller.Controller.saveKontaktdaten(Controller.java:36) 14:25:05,468 ERROR [STDERR] at de.tedata.mdo.jsf.handler.KontaktHandler.kontaktdaten(KontaktHandler.java:23) 14:25:05,468 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 14:25:05,484 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 14:25:05,484 ERROR [STDERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 14:25:05,484 ERROR [STDERR] at java.lang.reflect.Method.invoke(Unknown Source) 14:25:05,484 ERROR [STDERR] at org.apache.myfaces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:129) 14:25:05,484 ERROR [STDERR] at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:63) 14:25:05,484 ERROR [STDERR] at javax.faces.component.UICommand.broadcast(UICommand.java:106) 14:25:05,484 ERROR [STDERR] at javax.faces.component.UIViewRoot._broadcastForPhase(UIViewRoot.java:90) 14:25:05,484 ERROR [STDERR] at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:164) 14:25:05,484 ERROR [STDERR] at org.apache.myfaces.lifecycle.LifecycleImpl.invokeApplication(LifecycleImpl.java:316) 14:25:05,484 ERROR [STDERR] at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:86) 14:25:05,484 ERROR [STDERR] at javax.faces.webapp.FacesServlet.service(FacesServlet.java:106) 14:25:05,484 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) 14:25:05,499 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) 14:25:05,499 ERROR [STDERR] at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:190) 14:25:05,499 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) 14:25:05,499 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) 14:25:05,499 ERROR [STDERR] at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) 14:25:05,499 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) 14:25:05,499 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) 14:25:05,499 ERROR [STDERR] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) 14:25:05,499 ERROR [STDERR] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) 14:25:05,499 ERROR [STDERR] at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175) 14:25:05,499 ERROR [STDERR] at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74) 14:25:05,499 ERROR [STDERR] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) 14:25:05,499 ERROR [STDERR] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) 14:25:05,499 ERROR [STDERR] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) 14:25:05,499 ERROR [STDERR] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) 14:25:05,499 ERROR [STDERR] at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) 14:25:05,499 ERROR [STDERR] at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) 14:25:05,499 ERROR [STDERR] at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) 14:25:05,499 ERROR [STDERR] at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112) 14:25:05,499 ERROR [STDERR] at java.lang.Thread.run(Unknown Source) und sonst sagt er java.lang.SecurityException: Access to default session denied
8. Juli 200817 j ja ich weiss ja nicht wie ich es wegbekommen soll..... ich schreib ja die ip in nen string und wende sie dort an. in meinem quelltext geb ich nirgends an das er über localhost gehen soll, nur hab se natürlich hier nicht reingepackt..... also ich weiss momentan echt nicht merh was ich falsch mache.... kann das vielleicht an der konfiguration des webservers oder wie auch immer liegen. bin schon fast am verzweifeln. Nadine
8. Juli 200817 j so okay, ich hab schonmal den ersten fehler gefunden, properties.put("mail.smtp.host", smtpHost); properties.put("mail.smtp.port", smtpPort); properties.put("mail.smtp.auth", "true"); also der teil musste so heissen, danke das du mich nochmal drauf aufmerksam gemacht hast ob da wirklich beide properties mit den gleichen arguments stehen..... Abaer nun hab ich den Fehler: 14:48:51,795 ERROR [sTDERR] javax.mail.SendFailedException: Sending failed; nested exception is: class javax.mail.AuthenticationFailedException ich hoffe ich geh dir/euch nicht schon auf den keks Bearbeitet 8. Juli 200817 j von Alive3000
8. Juli 200817 j Du benutzt ein Objekt Transport in deinem Skript. Aber das scheint richtig zu sein wie man bei meinem Link sieht. Frank
8. Juli 200817 j ja nur langsam bin ich genervt, ich seh auch schon den wald vor lauter bäumen nicht. ich hoffe das es bald ein ende hat:)
13. Juli 200817 j Ich habe jetzt mal etwas gesucht. Ist zwar für JSP sollte aber nicht weiter stören. <%@ page import="java.util.*,javax.mail.*,javax.mail.internet.*" %> <% String absender_mail = "absender@provider.de"; String smtpserver = "smtp.server.provider.de"; String empfaenger = "empfaenger@provider.de"; String body = "Hier steht der Text"; try { Properties prop=new Properties(); prop.put("mail.smtp.host",smtpserver); Session s=Session.getInstance(prop); MimeMessage message=new MimeMessage(s); InternetAddress from=new InternetAddress(absender_mail); message.setFrom(from); InternetAddress rcpt=new InternetAddress(empfaenger); message.addRecipient(Message.RecipientType.TO,rcpt); message.setSubject("Internet-Anfrage"); message.setText(body); Transport.send(message); out.println("<p>Vielen Dank für Ihre Nachricht!</p>"); } catch(MessagingException msgexcep) { out.println(msgexcep.getMessage()); } %> [/code] Frank
16. Juli 200817 j danke, ich hab auch den fehler schon gefunden..... ich musste die ganzen properties angeben like: properties.put("mail.smtp.host", smtpHost); properties.put("mail.smtp.port", smtpPort); properties.put("mail.smtp.user", username); properties.put("mail.smtp.password", password); und die athentifizeirung auf false stellen:-)
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.