com.ericdaugherty.mail.server.services.smtp
Class SMTPRemoteSender

java.lang.Object
  extended by com.ericdaugherty.mail.server.services.smtp.MIMEConstants
      extended by com.ericdaugherty.mail.server.services.smtp.MIMESender
          extended by com.ericdaugherty.mail.server.services.smtp.SMTPRemoteSender

public class SMTPRemoteSender
extends MIMESender

This class handles sending messages to external SMTP servers for delivery.

Author:
Eric Daugherty, Andreas Kyrmegalos (2.x branch)

Field Summary
 
Fields inherited from class com.ericdaugherty.mail.server.services.smtp.MIMESender
b64os, boundaries, bufferForb64os, convertNextPart, CRLF_BYTES, CRLF_STRING, currentRead, currentTotal, emptyStringCount, initialHeaders, locale, mime, previousRead, readingHeaders, US_ASCII
 
Fields inherited from class com.ericdaugherty.mail.server.services.smtp.MIMEConstants
MIME_MULTIPART, MIME_OTHER, MIME_TEXT, MIME_UNDEFINED, MIME8BIT, MIMEAAUTOCONVERT, MIMEBASE64ENCODING, MIMEBOUNDARY, MIMECONTENT_TRANSFER_ENCODING, MIMECONTENT_TYPE, MIMEMULTIPART, MIMERFC822, MIMETEXT, MIMEVERSION
 
Constructor Summary
SMTPRemoteSender()
           
 
Method Summary
 void cleanUp()
           
protected  java.net.Socket connect(java.lang.String domain)
          Determines the MX entries for this domain and attempts to open a socket.
 java.util.List getFailedAddresses()
           
protected  void sendData(SMTPMessage message)
          This method sends the DATA only part of the message to the remote server.
 void sendMessage(EmailAddress address, SMTPMessage message)
          Handles delivery of messages to addresses not handled by this server.
protected  void sendMessage(java.net.Socket socketPre, java.lang.String remoteDomain, java.util.List addresses, SMTPMessage message)
           
 void sendMessage(java.lang.String remoteDomain, java.util.List addresses, SMTPMessage message)
           
 
Methods inherited from class com.ericdaugherty.mail.server.services.smtp.MIMESender
processDATA, setPrintOut
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SMTPRemoteSender

public SMTPRemoteSender()
Method Detail

getFailedAddresses

public java.util.List getFailedAddresses()

cleanUp

public void cleanUp()

sendMessage

public void sendMessage(EmailAddress address,
                        SMTPMessage message)
                 throws TransientNegativeException,
                        PermanentNegativeException
Handles delivery of messages to addresses not handled by this server.

Throws:
TransientNegativeException
PermanentNegativeException

sendMessage

public final void sendMessage(java.lang.String remoteDomain,
                              java.util.List addresses,
                              SMTPMessage message)
                       throws TransientNegativeException,
                              PermanentNegativeException
Throws:
TransientNegativeException
PermanentNegativeException

sendMessage

protected void sendMessage(java.net.Socket socketPre,
                           java.lang.String remoteDomain,
                           java.util.List addresses,
                           SMTPMessage message)
                    throws TransientNegativeException,
                           PermanentNegativeException
Throws:
TransientNegativeException
PermanentNegativeException

connect

protected java.net.Socket connect(java.lang.String domain)
                           throws TransientNegativeException
Determines the MX entries for this domain and attempts to open a socket. If no connections can be opened, a SystemException is thrown.

Throws:
TransientNegativeException

sendData

protected void sendData(SMTPMessage message)
                 throws java.net.SocketException,
                        java.io.IOException
This method sends the DATA only part of the message to the remote server.

Throws:
java.net.SocketException
java.io.IOException