<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">// #######################################################################
// ### MailDispatcher.java                                             ###
// ### Versenden von E-Mails                                           ###
// ### Verantwortlich: Thomas Dreibholz, dreibh@exp-math.uni-essen.de  ###
// #######################################################################


package pm;


import java.io.*;
import java.net.*;

import MailClient;


// ****** Test für SMTP Mail-Client-Klasse *******************************
public class MailDispatcher
{  
   // *** Debug-Schalter *************************************************
   final public final  boolean debug = true;
   
   // *** Default-Werte für Verbindung zum SMTP-Server *******************
   final public String serverName    = "localhost";
   final public int    serverPort    = 25;


   // *** Interne Variablen **********************************************
   private String      smtpName;
   private int         smtpPort;
   
   
   // ###### Singleton-Pattern: Instanz erzeugen #########################      
   static private MailDispatcher instanz = new MailDispatcher();
   static public MailDispatcher getInstance() {
      return(instanz);
   }

                                
   // ###### Konstruktor #################################################
   private MailDispatcher() {
      Einstellungen einstellungen = Einstellungen.getInstance();
      smtpName = einstellungen.Wert("MailDispatcher.ServerName",serverName);
      smtpPort = einstellungen.WertInteger("MailDispatcher.ServerPort",serverPort);
      if(debug) System.out.println("MailDispatcher verwendet Server " + smtpName + ", Port " + smtpPort);
   }


   // ###### Versand einer E-Mail ########################################
   public void SendeMail(String domain, String sender, String empfaenger, String text) throws Exception {
      // Verbindung aufbauen
      MailClient smtp = new MailClient("localhost",25);
      if(debug) System.out.println("Verbunden!");
      
      // Hello-Befehl senden
      if(!smtp.Hello(domain))
         throw new Exception(smtp.LetzteAntwort());
   
      // Absender senden
      if(!smtp.MailFrom(sender))
         throw new Exception(smtp.LetzteAntwort());
      
      // Empfänger senden         
      if(!smtp.RcptTo(empfaenger))
         throw new Exception(smtp.LetzteAntwort());
      
      // Nachricht senden         
      if(!smtp.Data(text))
         throw new Exception(smtp.LetzteAntwort());
         
      smtp.Quit();                                    
      if(debug) System.out.println("Mail gesendet, Verbindung beendet.");         
   }
}
</pre></body></html>