org.apache.james.transport.mailets
Class RemoteDelivery

java.lang.Object
  extended by org.apache.mailet.GenericMailet
      extended by org.apache.james.transport.mailets.RemoteDelivery
All Implemented Interfaces:
java.lang.Runnable, Mailet, MailetConfig

public class RemoteDelivery
extends GenericMailet
implements java.lang.Runnable

Receives a MessageContainer from JamesSpoolManager and takes care of delivery the message to remote hosts. If for some reason mail can't be delivered store it in the "outgoing" Repository and set an Alarm. After the next "delayTime" the Alarm will wake the servlet that will try to send it again. After "maxRetries" the mail will be considered undeliverable and will be returned to sender. TO DO (in priority): 1. Support a gateway (a single server where all mail will be delivered) (DONE) 2. Provide better failure messages (DONE) 3. More efficiently handle numerous recipients 4. Migrate to use Phoenix for the delivery threads You really want to read the JavaMail documentation if you are working in here, and you will want to view the list of JavaMail attributes, which are documented here: http://java.sun.com/products/javamail/1.3/docs/javadocs/com/sun/mail/smtp/package-summary.html as well as other places.

Version:
CVS $Revision: 767519 $ $Date: 2009-04-22 14:37:53 +0100 (Wed, 22 Apr 2009) $

Constructor Summary
RemoteDelivery()
           
 
Method Summary
 void destroy()
          Called by the mailer container to indicate to a mailet that the mailet is being taken out of service.
 java.lang.String getMailetInfo()
          Returns information about the mailet, such as author, version, and copyright.
 void init()
          Initialize the mailet
 void run()
          Handles checking the outgoing spool for new mail and delivering them if there are any
 void service(Mail mail)
          For this message, we take the list of recipients, organize these into distinct servers, and duplicate the message for each of these servers, and then call the deliver (messagecontainer) method for each server-specific messagecontainer ...
 
Methods inherited from class org.apache.mailet.GenericMailet
getInitParameter, getInitParameter, getInitParameterNames, getMailetConfig, getMailetContext, getMailetName, init, log, log
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RemoteDelivery

public RemoteDelivery()
Method Detail

init

public void init()
          throws javax.mail.MessagingException
Initialize the mailet

Overrides:
init in class GenericMailet
Throws:
javax.mail.MessagingException - if an exception occurs that interrupts the mailet's normal operation

getMailetInfo

public java.lang.String getMailetInfo()
Description copied from class: GenericMailet
Returns information about the mailet, such as author, version, and copyright. By default, this method returns an empty string. Override this method to have it return a meaningful value.

Specified by:
getMailetInfo in interface Mailet
Overrides:
getMailetInfo in class GenericMailet
Returns:
information about this mailet, by default an empty string

service

public void service(Mail mail)
             throws javax.mail.MessagingException
For this message, we take the list of recipients, organize these into distinct servers, and duplicate the message for each of these servers, and then call the deliver (messagecontainer) method for each server-specific messagecontainer ... that will handle storing it in the outgoing queue if needed.

Specified by:
service in interface Mailet
Specified by:
service in class GenericMailet
Parameters:
mail - org.apache.mailet.Mail
Throws:
javax.mail.MessagingException - - if an exception occurs that interferes with the mailet's normal operation

destroy

public void destroy()
Description copied from class: GenericMailet
Called by the mailer container to indicate to a mailet that the mailet is being taken out of service.

Specified by:
destroy in interface Mailet
Overrides:
destroy in class GenericMailet

run

public void run()
Handles checking the outgoing spool for new mail and delivering them if there are any

Specified by:
run in interface java.lang.Runnable


Copyright ? 2002-2009 The Apache Software Foundation. All Rights Reserved.