Hallo,
ich möchte mir zum testen eines Virtuellen SMTP Servers auf einem Microsoft Server 2008 R2 ein kleines Teststool bauen.
Ich erhalte in der Konsole folgende Ausgabe:
Server: 220 mein-server Microsoft ESMTP MAIL Service, Version: 6.0.3790.4675 ready at Tue, 21 Jun 2011 12:38:23 +0200
Jedoch passiert dann nichts mehr und die Verbindung wird mit Timeout Fehler beendet. Habt ihr nen Tipp für mich woran es hapert? Sollte ich vielleicht eher eine Socket Verbindung nehmen?
ich möchte mir zum testen eines Virtuellen SMTP Servers auf einem Microsoft Server 2008 R2 ein kleines Teststool bauen.
Java:
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.UnknownHostException;
import org.apache.commons.net.telnet.TelnetClient;
public class TelnetSMTP extends TelnetClient {
public static void main(String[] args) {
TelnetClient myTelnetClient = null;
DataOutputStream os = null;
BufferedReader br = null;
String sAnswer = null;
String sEmpfaenger = "empfanger@domain.de";
String sAbsender = "absender@domain.de";
String sServerDNS = "mein-server";
int iServerPort = 25;
myTelnetClient = new TelnetClient();
// Verbindungsaufbau
try {
myTelnetClient.connect(sServerDNS, iServerPort);
os = new DataOutputStream(myTelnetClient.getOutputStream());
br = new BufferedReader(new InputStreamReader(
myTelnetClient.getInputStream()));
} catch (UnknownHostException e) {
System.err.println(sServerDNS + " - Host unbekannt!");
} catch (IOException e) {
System.err.println(sServerDNS + " - I/O Exception!");
}
// SMTP Befehle abschicken
if (myTelnetClient != null && os != null && br != null) {
try {
os.writeBytes("HELO\n");
os.writeBytes("MAIL From: " + sAbsender + "\n");
os.writeBytes("RCPT To: " + sEmpfaenger + "\n");
os.writeBytes("DATA\n");
os.writeBytes("From: " + sAbsender + "\n");
os.writeBytes("Testnachricht\n"); // message body
os.writeBytes("\n.\n");
os.writeBytes("QUIT");
while ((sAnswer = br.readLine()) != null) {
System.out.println("Server: " + sAnswer);
if (sAnswer.indexOf("Ok") != -1) {
break;
}
}
os.close();
br.close();
myTelnetClient.disconnect();
} catch (UnknownHostException e) {
System.err.println(sServerDNS + " - Host unbekannt: " + e);
} catch (IOException e) {
System.err.println(sServerDNS + " - I/O Exception!: " + e);
}
}
}
}
Ich erhalte in der Konsole folgende Ausgabe:
Server: 220 mein-server Microsoft ESMTP MAIL Service, Version: 6.0.3790.4675 ready at Tue, 21 Jun 2011 12:38:23 +0200
Jedoch passiert dann nichts mehr und die Verbindung wird mit Timeout Fehler beendet. Habt ihr nen Tipp für mich woran es hapert? Sollte ich vielleicht eher eine Socket Verbindung nehmen?