Mail senden - Problem connect to SMTP host

Status
Nicht offen für weitere Antworten.

magic_halli

Bekanntes Mitglied
Hi,

ich habe eine Funktion, welche eine Mail verschickt. Die Empfängerandresse ('String sMail') und eine Nummer ('String anfrageNr') werden in diese Funkton übergeben und hier eingesetzt. Der Funktionsaufruf passiert in einer anderen Funktion in einem Iterator. Hierbei werden die Key/Value-Paare aus einer HashMap (Nummer/Empfängeradresse) ausgelesen und eingesetzt.
Hier erstmal die Funktion zum Mail senden:
Code:
private static void sendMailAnfragen(String anfrageNr, String sMail){
		
		try{
			String host = "10.0.0.1";
			String port = "25";
			String username = "geheim";
			String password = "geheim";
			
			System.out.println("BestätigungsMail an " + sMail + "   Nummer = " +anfrageNr);
			
			Date date = new Date();
			DateFormat dateformat;
			dateformat = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.MEDIUM); // bspw.: Dienstag, 25.September 2008 15:45:00
			
			String datum = new SimpleDateFormat("dd.MM.yyyy").format( new java.util.Date() );	//bspw.: 25.09.2008
			
			String subject = "Eingang Ihrer Anfrage vom " + datum;
			String message = "Ihre Anfrage ist bei uns am " + dateformat.format(date) + " eingegangen und wird unter der Anfragenummer " + anfrageNr + " bearbeitet. \n";
			
			// Get system properties
			//Properties props = System.getProperties();
			Properties props = new Properties();
			//Mail-Server properties: Session verlangt die Informationen über Host, User, Passwd etc.
			props.put("mail.smtp.host", host);
			props.put("mail.smtp.port", port);
			props.put("mail.smtp.auth", "true");
		    
			// Initialisierung der Auth-Klasse zur Mail-Account-Authentisierung; in Session benutzt
			myAuthenticator auth = new myAuthenticator(username, password);
			
			// Session: steht für die Verbindung mit dem Mail-Server		
			Session session = Session.getDefaultInstance(props, auth);
			//Gibt in der Console Debug-Meldungen zum Verlauf aus
			session.setDebug( false );
			
			// neue Message initialisieren
			Message msg = new MimeMessage( session );
			
			// Absender der Bestätigungsmail
			InternetAddress addressFrom = new InternetAddress("test@test.de");
			msg.setFrom( addressFrom );
			// Empfänger der Bestätigungsmail --> hier sMail einsetzen
			InternetAddress addressTo = new InternetAddress( sMail );
			// Mailinhalte festlegen
			msg.setRecipient(Message.RecipientType.TO, addressTo);
			msg.setSubject( subject );
			msg.setContent( message, "text/plain" );
			// Mail senden
			Transport.send( msg );
			
			System.out.println( "Die Mail wurde am " + dateformat.format(date) + " an " + sMail +  " versendet." );
			

		}catch(Exception err){
			err.printStackTrace();
		}
	}
Und hier der Aufruf der Funktion an anderer Stelle:
Code:
Set set = map.entrySet(); 
				Iterator it = set.iterator(); 
				while( it.hasNext() ) 
				{ 
				    Entry entry = (Entry) it.next(); 
				    sendMailAnfragen( entry.getKey().toString(), entry.getValue().toString() );
				    System.out.println( "Nummer: " + entry.getKey().toString() + ", Mail: " + entry.getValue().toString() ); 
				}

Wenn ich diese Funktion ganz für sich ausführe, natürlich die Eingabestrings entsprechend definiert, funktioniert das einwandfrei. Doch wenn ich diese Funktion aus der aufrufenden Funktion ausführen will, bekomme ich folgende Fehlermeldung:
"javax.mail.MessagingException: Could not connect to SMTP host: localhost, port: 25"!!!

Das ist mir völlig unverständlich, warum dieser Fehler auftritt, zumal die Funktion alleine ohne Probleme Mails versendet. :?: ???:L
Ich habe schon drangedacht, dass der Iterator vielleicht schneller durchlaufen könnte, als die Connection mit dem Mailserver zustande kommt, aber ein Testszenario mit einem Test-Iterator und meiner Mailfunktion hat problemlos geklappt!

Was könnte das für Ursachen haben? Wieso will/kann auf einmal nicht mit dem SMTP verbunden werden?

Danke und Gruß
 

magic_halli

Bekanntes Mitglied
cburghardt hat gesagt.:
Tipp 1: verwende die Session wieder
Poste bitte den Stacktrace
Wie ist das gemeint, die Session wiederverwenden bzw. wie geht das?

Hier der Stacktrace:
Code:
javax.mail.MessagingException: Could not connect to SMTP host: localhost, port: 25;
  nested exception is:
	java.net.ConnectException: Connection refused: connect
	at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1391)
	at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:412)
	at javax.mail.Service.connect(Service.java:288)
	at javax.mail.Service.connect(Service.java:169)
	at javax.mail.Service.connect(Service.java:118)
	at javax.mail.Transport.send0(Transport.java:188)
	at javax.mail.Transport.send(Transport.java:118)
	at pFetchImap.sendMailAnfragen(pFetchImap.java:2264)
	at pFetchImap.createAnfrage(pFetchImap.java:678)
	at pFetchImap.main(pFetchImap.java:162)
Caused by: java.net.ConnectException: Connection refused: connect
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.PlainSocketImpl.doConnect(Unknown Source)
	at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
	at java.net.PlainSocketImpl.connect(Unknown Source)
	at java.net.SocksSocketImpl.connect(Unknown Source)
	at java.net.Socket.connect(Unknown Source)
	at java.net.Socket.connect(Unknown Source)
	at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:233)
	at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:189)
	at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1359)
	... 9 more

EDIT: Jetzt fällt mir hier noch auf, dass er versucht mit 'host: localhost' verbinden möchte. Das ist aber nicht korrekt - hier sollte '10.0.0.1' stehen! ???:L
 

cburghardt

Mitglied
Naja, du erzeugst doch deine Session jedes Mal neu:
Session session = Session.getDefaultInstance(props, auth);
Mach das eben vorher und verwende die Session dann als member Variable oder (besser) übergebe sie der Methode. Sollte außerdem schneller sein.
 

magic_halli

Bekanntes Mitglied
Ich habe die Session aus meiner Methode ausgelagert und definiere diese nun in der aufrufenden Methode. Somit musste ich auch das Setzen der System-Properties mit auslagern... Und genau diese haben anscheinend den Fehler verursacht!!! Jetzt funktioniert´s nämlich plötzlich wie gewünscht! :applaus:

Keine Ahnung, warum und wie die System-Properties das Verbinden mit dem SMTP beeinflusst haben... hat jemand ne Erklärung?

Danke und Gruß
 
M

myGrades

Gast
ich stehe vor dem selben Problem und bekomme den gleichen fehler... wie hast du die session ausgelagert? die übergibt der session ja das "props" mit aber dieses wird ja erst in der Methode erzeugt...
Hoffe du kannst mir da weiter helfen!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Z E-Mail senden mit Bibliotheken Java Basics - Anfänger-Themen 1
K Mail senden, nachdem Anwendung beendet wurde (gleich wie) Java Basics - Anfänger-Themen 4
B Java Mail -> Mail senden, ist aber nich in IMAP unter "Gesendet" Java Basics - Anfänger-Themen 3
M Java Mail Programm Java Basics - Anfänger-Themen 4
I Java Mail Timeout erst nach rund 5 Minuten? Java Basics - Anfänger-Themen 9
T PDF-Formula (XFDF) via Mail - Betreff mit Werten aus PDF-Formular ergänzen Java Basics - Anfänger-Themen 2
P Einfacher regulärer Ausdruck (RegEx) für E-Mail-Adressen Java Basics - Anfänger-Themen 2
I Java Mail (IMAP -> Empfangen) und Google Mail Java Basics - Anfänger-Themen 1
TimoN11 Mail Programm mit Java? Java Basics - Anfänger-Themen 1
F String auf E-Mail kürzen Java Basics - Anfänger-Themen 11
B Java Mail: suchen von mehreren Emailadressen Java Basics - Anfänger-Themen 5
B java.mail - Email antworten und Content ausgeben Java Basics - Anfänger-Themen 4
J Mail body verschwindet Java Basics - Anfänger-Themen 2
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
F Mail empfangen mit JAVA Java Basics - Anfänger-Themen 3
S JavaMail API E-Mail versenden Probleme Java Basics - Anfänger-Themen 5
S E-Mail über Java Java Basics - Anfänger-Themen 9
Mike90 Anhänge einer Mail abrufen Java Basics - Anfänger-Themen 6
timbeau Javax.Mail: Check this out Java Basics - Anfänger-Themen 10
T Java-Mail API Java Basics - Anfänger-Themen 11
V JavaApplet versendet keine mail Java Basics - Anfänger-Themen 8
0 Mail Versand Java Basics - Anfänger-Themen 65
A Java Mail 1.4.4 - Email versenden (HOTMAIL SMTP auth) Java Basics - Anfänger-Themen 9
F Java Mail mit Anhang Java Basics - Anfänger-Themen 5
M Java Mail API Java Basics - Anfänger-Themen 7
StrikeTom Javax.mail frage(zu code) Java Basics - Anfänger-Themen 17
J Dateien automatisch per Mail versenden Java Basics - Anfänger-Themen 3
F E-Mail Java Basics - Anfänger-Themen 24
M Ist Mail API im Core? Java Basics - Anfänger-Themen 2
L E-Mail Attribute IMAP ändern Java Basics - Anfänger-Themen 4
M Mail-Programm Java Basics - Anfänger-Themen 8
F mail mit anhang Java Basics - Anfänger-Themen 5
F Anhang mi Java Mail Java Basics - Anfänger-Themen 13
F "From" bei Mail ändern Java Basics - Anfänger-Themen 6
F Mail Java Basics - Anfänger-Themen 3
W Mail problem Java Basics - Anfänger-Themen 3
H ist eine "neue Session" für Mail möglich? Java Basics - Anfänger-Themen 3
T E-mail programm Java Basics - Anfänger-Themen 2
F java mail api Java Basics - Anfänger-Themen 4
M Javamail: Mail als separate Datei speichern? Java Basics - Anfänger-Themen 6
G Mehrere E-Mail Adressaten Java Basics - Anfänger-Themen 3
G Mail versenden, wenn Mikrofon einen bestimmten Pegel erreich Java Basics - Anfänger-Themen 3
D Problem beim E-Mail versenden Java Basics - Anfänger-Themen 6
G mail verschicken Java Basics - Anfänger-Themen 3
G Mail Client öffnen Java Basics - Anfänger-Themen 9
R Javax.mail wird nicht gefunden Java Basics - Anfänger-Themen 2
D Suchen nach E-Mail Adressen mit RegEx? Java Basics - Anfänger-Themen 14
F E-Mail Programm Java Basics - Anfänger-Themen 4
R JAVA Mail Java Basics - Anfänger-Themen 5
G mail.jar und activation.jar Java Basics - Anfänger-Themen 3
M regulärer Ausdruck zum Parsen einer E-Mail Signatur Java Basics - Anfänger-Themen 16
C wo ist mein javax.mail? Java Basics - Anfänger-Themen 2
M Einfache HTML Mail versenden , suche Beispiel Java Basics - Anfänger-Themen 5
L package com.sun.mail does not exist Java Basics - Anfänger-Themen 8
L Import von mail.jar Java Basics - Anfänger-Themen 10
N Header für Mail Java Basics - Anfänger-Themen 5
L JavaMail: javax.mail wird nicht gefunden Java Basics - Anfänger-Themen 2
A E-Mail via SMTP Java Basics - Anfänger-Themen 7
R die /ext klassen nutzen (Mail API) - klassen laden Java Basics - Anfänger-Themen 7
M E-Mail im Netzwerk über Microsoft Exchange Server versenden? Java Basics - Anfänger-Themen 3
C Bytearray senden via SerialPort Java Basics - Anfänger-Themen 7
S Bilder über Socket Senden Java Basics - Anfänger-Themen 1
R Antwort vom Server an mehreren Clients senden Java Basics - Anfänger-Themen 3
G Email senden MailDev Java Basics - Anfänger-Themen 13
N Erste Schritte Dedicated Server \ Senden und Empfangen von Daten/Befehlen Java Basics - Anfänger-Themen 2
T Datei seriell senden Java Basics - Anfänger-Themen 42
N Daten/Formular per POST an Firefox/Browser senden Java Basics - Anfänger-Themen 7
L Text/Befehle zu Programmen senden Java Basics - Anfänger-Themen 1
F String zu einem Server senden Java Basics - Anfänger-Themen 4
R Daten via Post an php Script senden Java Basics - Anfänger-Themen 1
M Input/Output Allg. Befehle an die cmd.exe senden Java Basics - Anfänger-Themen 9
fLooojava Bluetooth Projekt - Problem beim mehrmaligen Senden Java Basics - Anfänger-Themen 5
M Int wert in ActionEvent senden Java Basics - Anfänger-Themen 4
A Pfadangabe Datei senden Java Basics - Anfänger-Themen 14
S Hilfe!! Senden eine Bestätigungsmail Java Basics - Anfänger-Themen 3
C "Signal" senden Java Basics - Anfänger-Themen 2
J Funktion um JSON per Post senden/emfangen Java Basics - Anfänger-Themen 3
H Objekt zu groß zum Senden? Java Basics - Anfänger-Themen 6
E Senden von Objects an Client. Variablenwerte kommen nicht an Java Basics - Anfänger-Themen 5
P Probleme bei senden eines Strings übers Netzwerk Java Basics - Anfänger-Themen 4
E SMS senden Java Basics - Anfänger-Themen 3
U E-Mails mittels Java senden. Java Basics - Anfänger-Themen 2
M bild mit httpPost senden Java Basics - Anfänger-Themen 8
B Object an Server senden, Server antwortet mit objekt? Java Basics - Anfänger-Themen 7
C Little Endianess - Senden von Daten Java Basics - Anfänger-Themen 2
M String senden/empfangen mit PHP funktioniert nicht Java Basics - Anfänger-Themen 2
T Daten über Com Port senden Java Basics - Anfänger-Themen 2
G Datei an PHP Script senden und speichern Java Basics - Anfänger-Themen 2
D Daten an Formular senden Java Basics - Anfänger-Themen 4
T Tastatur Tasten Senden Java Basics - Anfänger-Themen 4
Blackskyliner Befehle an einen Thread senden? Java Basics - Anfänger-Themen 2
M Bitmuster eines Strings über RS232 senden Java Basics - Anfänger-Themen 5
S 2x per GET senden Java Basics - Anfänger-Themen 6
B Bild/Datei von einem Server an einen Client senden Java Basics - Anfänger-Themen 6
M Mails zum Server senden der Authentisierung benötigt Java Basics - Anfänger-Themen 3
H String mit UDP senden Java Basics - Anfänger-Themen 10
M Warum kann man dem Thread kein notify senden? Java Basics - Anfänger-Themen 15
G String zur RS232 senden und mit cr abschließen! Java Basics - Anfänger-Themen 4
O Post senden an php script. Java Basics - Anfänger-Themen 20

Ähnliche Java Themen

Neue Themen


Oben