ERLEDIGT
JA
JA
ANTWORTEN
4
4
ZUGRIFFE
358
358
EMPFEHLEN
-
27.10.11 11:00 #1
- Registriert seit
- Apr 2011
- Beiträge
- 4
Guten Morgen.
Ich sitze seit gestern vor einem Problem, wo ich mal erfahrene Hilfe bräuchte.
Ich bekomme beim ausführen meiner klasse folgende Exception:
Code :1 2 3
javax.mail.MessagingException: Could not connect to SMTP host: localhost, port: 25; nested exception is: java.net.ConnectException: Connection refused: connect
Zum Hintergrund: Ich hab einen lokalen James Mail Server aufgesetzt und das SMTP auf SSL und port 465 geändert. Trotzdem scheint der sich auf port 25 verbinden zu wollen.
Aufbau der Klasse:Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
import java.io.*; import java.util.Properties; import javax.mail.*; public class Mailer extends Authenticator { public String sender; public Session ses; public PasswordAuthentication auth; public Mailer(final String username, final String pass, String host){ sender = username + '@' + host; auth = new PasswordAuthentication(username, pass); Properties props = new Properties(); props.put("mail.user", username); props.put("mail.pass", pass); props.put("mail.host", host); props.put("mail.debug", "false"); props.put("mail.store.protocol", "pop3"); props.put("mail.smtp.auth", "true"); props.put("mail.smtp.port", "465"); props.put("mail.smtp.socketFactory.port", "465"); props.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory"); props.put("mail.transport.protocol", "smtp"); Session ses = Session.getInstance(props, new Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(username,pass); } }); } public void sendMail(String empfaenger, String betreff, String text){ System.out.println("SENDING message from " + sender + " to " + empfaenger); System.out.println(); try{ MimeMessage msg = new MimeMessage(ses); msg.addRecipients(Message.RecipientType.TO, empfaenger); msg.setSubject(betreff); msg.setText(text); Transport.send(msg); }catch(Exception e){ System.out.print(e); } } }
Greetz,
MetamorphosisGeändert von Metamorphosis (27.10.11 um 11:04 Uhr)
-
27.10.11 12:05 #2SE Tutorials.de Gastzugang
Ich habe dazu mal ein ausführliches Tutorial geschrieben *findest du auch in meiner Signatur*.
Da ich den Fehler deutlich sehe denke ich mal das du den Source von dort hast mit welchem auch ich einst begonnen habe.
Auch solltest du für Java-Code die Java-Tags nutzen *steht auch in meiner Signatur*.
Das Problem : du erstellst ein Session-Objekt mit den entsprechenden Properties ... soweit ist das kein Problem.
Welchen schwerwiegenden Fehler du dann aber begehst : du rufst die statische Methode Transport.send(Message) auf.
Laut Doc hat diese statische Methode aber ihr eigenes Session-Objekt ... dein vorher so mühevoll vorbereitetes Session-Objekt wird also vollkommen ignoriert.
Da ich jetzt hier nicht alles doppelt schreiben möchte bitte ich dich dir mein Tutorial durchzulesen.
Falls du Fragen zu diesem hast bitte ich dich diese als Kommentar unter das Tutorial zu schreiben.
btw : Willkommen im Tutorials.de-Forum
//EDIT
Ich habe gerade an dem Zeitpunkt der Bedankung gesehen das du dir mein Tutorial scheinbar bereits angesehen hast. Ich hoffe es hat dir bei der Lösung deines Problems geholfen.
Ich würde mich noch über eine Bewertung freuen.
btw : Makiere das Thema bitte als Erledigt wenn dein Problem gelöst ist.Geändert von SE (27.10.11 um 12:15 Uhr)
-
27.10.11 13:47 #3
- Registriert seit
- Apr 2011
- Beiträge
- 4
Hallo SPiKEe,
leider hat mir dein Tutorial nicht sonderlich geholfen. Denn selbst wenn ich deine fertige Klasse einfach kopiere und an meinen Mail Server anpasse, haut NetBeans mir Exceptions raus.
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
javax.mail.MessagingException: Could not connect to SMTP host: localhost, port: 465; nested exception is: javax.net.ssl.SSLException: Received fatal alert: internal_error 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 pvd.mail.client.SendMailTLS.main(SendMailTLS.java:30) Caused by: javax.net.ssl.SSLException: Received fatal alert: internal_error at sun.security.ssl.Alerts.getSSLException(Alerts.java:208) at sun.security.ssl.Alerts.getSSLException(Alerts.java:154) at sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1911) at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1027) at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1262) at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1289) at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1273) at com.sun.mail.util.SocketFetcher.configureSSLSocket(SocketFetcher.java:507) at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:238) at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1900) ... 3 more
Aber der James läuft und ist erreichbar. Sobald ich SSL ausmache, und den James wieder auf plain starten lasse, funktioniert alles wunderbar.
-
27.10.11 15:42 #4SE Tutorials.de Gastzugang
Das Problem könnte sein das Java dein SSL-Zertifikat nicht akzeptiert. Um das zu umgehen müsstest du die SSLSocketFactory-Klasse überschreiben das diese ALLE Zertifikate akzeptiert.
Probiere das ganze mal bei einem Provider im Internet aus .. dort sollte es keine Probleme geben.
*Das ist jetzt aber so ziemlich das einzige was mir bei der Fehlermeldung einfällt.*
-
30.10.11 15:09 #5
- Registriert seit
- Apr 2011
- Beiträge
- 4
Hat sich nun erledigt... Es lag am James, da fehlte eine Jar-Datei für die SSL Verbindung.
Danke nochmals =)
greetz,
Metamorphosis
Ähnliche Themen
-
[COM/C++] Problem mit lokalem Server
Von Muepe32 im Forum C/C++Antworten: 1Letzter Beitrag: 07.06.11, 20:23 -
htaccess auf lokalem Server?
Von D@nger im Forum Hosting & WebserverAntworten: 4Letzter Beitrag: 20.04.06, 14:10 -
Mails von lokalem Rechner versenden (auch ohne Mailserver nur mit mail()?)
Von Ruediger im Forum Hosting & WebserverAntworten: 1Letzter Beitrag: 27.09.03, 19:30 -
$REMOTE_ADDR auf lokalem Server nein, bei Lycos ja.
Von NoGi im Forum PHPAntworten: 8Letzter Beitrag: 30.03.03, 13:17 -
Mails vom lokalem Apache Server****?
Von Phreak im Forum PHPAntworten: 3Letzter Beitrag: 31.07.01, 19:17





Zitieren
Login





