IP*Works!

ipworks
Class Smtp

java.lang.Object
  |
  +--ipworks.Smtp

public class Smtp
extends java.lang.Object

The SMTP class is used to send Internet mail using the SMTP protocol (the Internet mail standard).

The SMTP class implements a standard SMTP client as specified in RFC 821. It has a simple plug-and-play interface. It contains a number of properties like To , Subject , From , Cc , BCc , etc. that map directly to the internet mail message headers with the same name (RFC 822). The message text is set in MessageText and/or AttachedFile . Messages are sent by setting the Action property to 'Send Message'.

The class supports message delivery to multiple recipients through the To , Cc , and BCc properties. Simply specify the destination email addresses separated by commas.

The interface of the class is open-ended. New features, including MIME attachments can be supported by using the OtherHeaders property.

A number of events provide feedback during the operation of the class. The Transfer event is fired during message delivery to show the number of bytes delivered. The PITrail event traces the commands that are sent to the server and the respective replies.


Field Summary
static int a_Connect
           
static int a_Disconnect
           
static int a_Expand
           
static int a_Idle
           
static int a_ResetHeaders
           
static int a_Send
           
static int a_SendToTerminalAndEmail
           
static int a_SendToTerminalOnly
           
static int a_SendToTerminalOrEmail
           
static int a_Verify
           
 
Constructor Summary
Smtp()
           
 
Method Summary
 void addSmtpEventListener(SmtpEventListener l)
           
 void fireEndTransfer()
          Fired when the message text completes transferring.
 void fireError(int errorCode, java.lang.String description)
          Information about errors during data delivery.
 void fireExpand(java.lang.String address)
          Fired for every email address returned by the server when Action is set to Expand .
 void firePITrail(int direction, java.lang.String message)
          Traces the commands sent to the mail server, and the respective replies.
 void fireStartTransfer()
          Fired when the message text starts transferring.
 void fireTransfer(int bytesTransferred)
          Fired while the message text gets transferred to MailServer .
 int getAction()
          An action code for the component.
 java.lang.String getAttachedFile()
          A file to append to MessageText when sending mail.
 java.lang.String getBCc()
          A comma separated list of addresses for blind carbon copies (optional).
 java.lang.String getCc()
          A comma separated list of addresses for carbon copies (optional).
 java.lang.String getDate()
          The Date of the mail message (optional).
 java.lang.String getFrom()
          The email address of the sender (required).
 java.lang.String getHello()
          The argument for HELO (herald) command to the server (defaults to local host name).
 java.lang.String getLastReply()
          The last reply from the server.
 java.lang.String getLocalHost()
          The name of the local host.
 int getMailPort()
          The server port for SMTP (default 25).
 java.lang.String getMailServer()
          The name or address of a mail server (mail relay).
 int getMaxHeaderLength()
          Maximum length for headers to avoid line folding (default 80).
 java.lang.String getMessageText()
          The full text of the message to send (without headers).
 java.lang.String getOtherHeaders()
          An RFC 822 compliant string consisting of extra headers.
 java.lang.String getReplyTo()
          A mail address to reply to (optional).
 java.lang.String getSubject()
          The subject of the mail message (optional).
 java.lang.String getTo()
          A comma separated list of addresses for destinations (required).
 boolean isAllowExtensions()
          A switch allowing the component to use ESMTP features (SMTP extensions).
 void removeSmtpEventListener(SmtpEventListener l)
           
 void setAction(int action)
          An action code for the component.
 void setAllowExtensions(boolean allowExtensions)
          A switch allowing the component to use ESMTP features (SMTP extensions).
 void setAttachedFile(java.lang.String attachedFile)
          A file to append to MessageText when sending mail.
 void setBCc(java.lang.String BCc)
          A comma separated list of addresses for blind carbon copies (optional).
 void setCc(java.lang.String cc)
          A comma separated list of addresses for carbon copies (optional).
 void setCommand(java.lang.String command)
          Can be used to send additional commands directly to the SMTP server.
 void setDate(java.lang.String date)
          The Date of the mail message (optional).
 void setFrom(java.lang.String from)
          The email address of the sender (required).
 void setHello(java.lang.String hello)
          The argument for HELO (herald) command to the server (defaults to local host name).
 void setMailPort(int mailPort)
          The server port for SMTP (default 25).
 void setMailServer(java.lang.String mailServer)
          The name or address of a mail server (mail relay).
 void setMaxHeaderLength(int maxHeaderLength)
          Maximum length for headers to avoid line folding (default 80).
 void setMessageText(java.lang.String messageText)
          The full text of the message to send (without headers).
 void setOtherHeaders(java.lang.String otherHeaders)
          An RFC 822 compliant string consisting of extra headers.
 void setReplyTo(java.lang.String replyTo)
          A mail address to reply to (optional).
 void setSubject(java.lang.String subject)
          The subject of the mail message (optional).
 void setTo(java.lang.String to)
          A comma separated list of addresses for destinations (required).
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

a_Idle

public static final int a_Idle

a_Connect

public static final int a_Connect

a_Disconnect

public static final int a_Disconnect

a_Send

public static final int a_Send

a_ResetHeaders

public static final int a_ResetHeaders

a_Expand

public static final int a_Expand

a_Verify

public static final int a_Verify

a_SendToTerminalAndEmail

public static final int a_SendToTerminalAndEmail

a_SendToTerminalOrEmail

public static final int a_SendToTerminalOrEmail

a_SendToTerminalOnly

public static final int a_SendToTerminalOnly
Constructor Detail

Smtp

public Smtp()
Method Detail

getAction

public int getAction()
An action code for the component. Setting the Action property to a valid action code makes the class perform the associated action. If the action completes successfully, execution continues normally, and Action is reset to 0 (Idle). If an error happens, then an IPWorksException exception is raised.

The following are the possible values for the Action property and the corresponding descriptions:

a_Idle
Default action. It can also be used to interrupt the current operation.
a_Connect
Connects to the mail relay and sends the SMTP HELO command, thus preparing for sending messages. Any number of messages can later be sent using the 'Send Message' action below.
a_Disconnect
Disconnects from the mail relay.
a_Send
If the class is not connected to the mail relay, a connection is created. Then the class attempts to deliver the current message and attached file.
a_ResetHeaders
Resets all the message headers to "" (empty string). Use this property before creating a new message, so that headers from the previous message are not carried over to the next one.
a_Expand
Asks the MailServer to expand the name or mailing list given in the [ To property. The resulting response is provided in one or more Expand events (one for each address). The class will try to connect to the mail relay if it is not already connected.
a_Verify
Asks the MailServer to verify the address in the To property. In case of success To will then hold the verified email address. The class will try to connect to the mail relay if it is not already connected.
a_SendToTerminalAndEmail
Similar to Send but requests also that the message is sent to the terminal of the user as well, if he is logged on and accepts terminal messages. This Action requires that AllowExtensions is set to True and is not supported by all mail relays.
a_SendToTerminalOrEmail
Similar to Send but requests instead that the message is first sent to the user's terminal. If the user is not logged in or does not accept terminal messages, the message is sent to his mailbox. This Action requires that AllowExtensions is set to True and is not supported by all mail relays.
a_SendToTerminalOnly
Similar to Send but requests instead that the message is first to the user's terminal. An exception with the server's response is raised if the user is not logged in or does not accept terminal messages. This Action requires that AllowExtensions is set to True and is not supported by all mail relays.


setAction

public void setAction(int action)
               throws IPWorksException
An action code for the component. Setting the Action property to a valid action code makes the class perform the associated action. If the action completes successfully, execution continues normally, and Action is reset to 0 (Idle). If an error happens, then an IPWorksException exception is raised.

The following are the possible values for the Action property and the corresponding descriptions:

a_Idle
Default action. It can also be used to interrupt the current operation.
a_Connect
Connects to the mail relay and sends the SMTP HELO command, thus preparing for sending messages. Any number of messages can later be sent using the 'Send Message' action below.
a_Disconnect
Disconnects from the mail relay.
a_Send
If the class is not connected to the mail relay, a connection is created. Then the class attempts to deliver the current message and attached file.
a_ResetHeaders
Resets all the message headers to "" (empty string). Use this property before creating a new message, so that headers from the previous message are not carried over to the next one.
a_Expand
Asks the MailServer to expand the name or mailing list given in the [ To property. The resulting response is provided in one or more Expand events (one for each address). The class will try to connect to the mail relay if it is not already connected.
a_Verify
Asks the MailServer to verify the address in the To property. In case of success To will then hold the verified email address. The class will try to connect to the mail relay if it is not already connected.
a_SendToTerminalAndEmail
Similar to Send but requests also that the message is sent to the terminal of the user as well, if he is logged on and accepts terminal messages. This Action requires that AllowExtensions is set to True and is not supported by all mail relays.
a_SendToTerminalOrEmail
Similar to Send but requests instead that the message is first sent to the user's terminal. If the user is not logged in or does not accept terminal messages, the message is sent to his mailbox. This Action requires that AllowExtensions is set to True and is not supported by all mail relays.
a_SendToTerminalOnly
Similar to Send but requests instead that the message is first to the user's terminal. An exception with the server's response is raised if the user is not logged in or does not accept terminal messages. This Action requires that AllowExtensions is set to True and is not supported by all mail relays.


isAllowExtensions

public boolean isAllowExtensions()
A switch allowing the component to use ESMTP features (SMTP extensions). If AllowExtensions is true, the class will first send the EHLO greeting to the server and, if that fails, the standard HELO command will be sent.

The property is true by default but may be disabled if it's known in advance that the MailServer doesn't support SMTP extensions.


setAllowExtensions

public void setAllowExtensions(boolean allowExtensions)
                        throws IPWorksException
A switch allowing the component to use ESMTP features (SMTP extensions). If AllowExtensions is true, the class will first send the EHLO greeting to the server and, if that fails, the standard HELO command will be sent.

The property is true by default but may be disabled if it's known in advance that the MailServer doesn't support SMTP extensions.


getAttachedFile

public java.lang.String getAttachedFile()
A file to append to MessageText when sending mail. The content of AttachedFile is appended to the text in MessageText (if any) and sent to the mail relay. This property is useful for sending arbitrarily large messages and/or sending MIME attachments.

It is advisable that the text contained in the file be a collection of lines with lengths less than or equal to 80 bytes separated by CRLF ("\\r\\n") . The text in the message lines must contain 7-bit characters so that the message can be successfully pass through the multitude of mail systems on the Internet.

The class automatically escapes lines that start with a "." by adding another as specified in RFC 822. The message text is unescaped by the receiving agent, so the process is fully transparent.


setAttachedFile

public void setAttachedFile(java.lang.String attachedFile)
                     throws IPWorksException
A file to append to MessageText when sending mail. The content of AttachedFile is appended to the text in MessageText (if any) and sent to the mail relay. This property is useful for sending arbitrarily large messages and/or sending MIME attachments.

It is advisable that the text contained in the file be a collection of lines with lengths less than or equal to 80 bytes separated by CRLF ("\\r\\n") . The text in the message lines must contain 7-bit characters so that the message can be successfully pass through the multitude of mail systems on the Internet.

The class automatically escapes lines that start with a "." by adding another as specified in RFC 822. The message text is unescaped by the receiving agent, so the process is fully transparent.


getBCc

public java.lang.String getBCc()
A comma separated list of addresses for blind carbon copies (optional). The BCc property specifies a comma separated list of destinations where to send blind carbon copies of the mail message. A copy of the message is sent to each destination, but no BCc SMTP header is created containing the destination addresses, so individual recipients never see the list of the other recipients.

The class will return an error if the MailServer returns an error code about any email address specified in To or Cc but it will only fire an Error event if the same happens with an email address specified in BCc .

If the resulting BCc header is longer than MaxHeaderLength , then it is folded according to RFC 822 specifications.


setBCc

public void setBCc(java.lang.String BCc)
            throws IPWorksException
A comma separated list of addresses for blind carbon copies (optional). The BCc property specifies a comma separated list of destinations where to send blind carbon copies of the mail message. A copy of the message is sent to each destination, but no BCc SMTP header is created containing the destination addresses, so individual recipients never see the list of the other recipients.

The class will return an error if the MailServer returns an error code about any email address specified in To or Cc but it will only fire an Error event if the same happens with an email address specified in BCc .

If the resulting BCc header is longer than MaxHeaderLength , then it is folded according to RFC 822 specifications.


getCc

public java.lang.String getCc()
A comma separated list of addresses for carbon copies (optional). The Cc property specifies a comma separated list of destinations where to send carbon copies of the mail message. A copy of the message is sent to each destination, and a Cc SMTP header is created containing the destination addresses. This header is sent to every recipient of the message. If you don't want to copy this information to every recipient, then use blind carbon copies instead (see the description of the BCc ).

The class will return an error if the MailServer returns an error code about any email address specified in To or Cc but it will only fire an Error event if the same happens with an email address specified in BCc .

If the resulting Cc header is longer than MaxHeaderLength , then it is folded according to RFC 822 specifications.


setCc

public void setCc(java.lang.String cc)
           throws IPWorksException
A comma separated list of addresses for carbon copies (optional). The Cc property specifies a comma separated list of destinations where to send carbon copies of the mail message. A copy of the message is sent to each destination, and a Cc SMTP header is created containing the destination addresses. This header is sent to every recipient of the message. If you don't want to copy this information to every recipient, then use blind carbon copies instead (see the description of the BCc ).

The class will return an error if the MailServer returns an error code about any email address specified in To or Cc but it will only fire an Error event if the same happens with an email address specified in BCc .

If the resulting Cc header is longer than MaxHeaderLength , then it is folded according to RFC 822 specifications.


setCommand

public void setCommand(java.lang.String command)
                throws IPWorksException
Can be used to send additional commands directly to the SMTP server. Check the LastReply property and/or trap the PITrail events comming from the server to get the response.


getDate

public java.lang.String getDate()
The Date of the mail message (optional). If the Date property contains a non-empty string, then a Date SMTP header is created and attached to the message. If not, then the date information is added by the mail relay(s) the message goes through.

If the resulting Date header is longer than MaxHeaderLength , then it is folded according to RFC 822 specifications.

RFC 822 contains detailed date format specifications. An example of a valid date is "Fri, 1 Mar 96 21:24:52 EST".


setDate

public void setDate(java.lang.String date)
             throws IPWorksException
The Date of the mail message (optional). If the Date property contains a non-empty string, then a Date SMTP header is created and attached to the message. If not, then the date information is added by the mail relay(s) the message goes through.

If the resulting Date header is longer than MaxHeaderLength , then it is folded according to RFC 822 specifications.

RFC 822 contains detailed date format specifications. An example of a valid date is "Fri, 1 Mar 96 21:24:52 EST".


getFrom

public java.lang.String getFrom()
The email address of the sender (required). The From property is used to create a From SMTP header. This header identifies the sender of the message. A valid email address is required. Examples of valid addresses are:"Your Name" <address@company.com>oraddress@company.com

If the resulting From header is longer than MaxHeaderLength , then it is folded according to RFC 822 specifications.


setFrom

public void setFrom(java.lang.String from)
             throws IPWorksException
The email address of the sender (required). The From property is used to create a From SMTP header. This header identifies the sender of the message. A valid email address is required. Examples of valid addresses are:"Your Name" <address@company.com>oraddress@company.com

If the resulting From header is longer than MaxHeaderLength , then it is folded according to RFC 822 specifications.


getHello

public java.lang.String getHello()
The argument for HELO (herald) command to the server (defaults to local host name). The Hello property specifies a string to send to the MailServer at connection time as an argument to the SMTP HELO command. This generally identifies the host sending mail, and that's why the Hello property defaults to the name of the local host. The property is provided in case the class does not accept the default value and a custom value (such as, for example, a fully qualified domain name) must be sent.

If AllowExtensions is true the EHLO command will be sent instead of the HELO command.


setHello

public void setHello(java.lang.String hello)
              throws IPWorksException
The argument for HELO (herald) command to the server (defaults to local host name). The Hello property specifies a string to send to the MailServer at connection time as an argument to the SMTP HELO command. This generally identifies the host sending mail, and that's why the Hello property defaults to the name of the local host. The property is provided in case the class does not accept the default value and a custom value (such as, for example, a fully qualified domain name) must be sent.

If AllowExtensions is true the EHLO command will be sent instead of the HELO command.


getLastReply

public java.lang.String getLastReply()
The last reply from the server. This is the last reply received from the server. It can be used for information purposes. The same information and more can also be retrieved through the PITrail event.


getLocalHost

public java.lang.String getLocalHost()
The name of the local host. When connected, the IP address of the interface through which the connection was made. The LocalHost property contains the name of the local host as obtained by the gethostname() Winsock call.

If the class is connected, the LocalHost property shows the IP address of the interface through which the connection is made in internet dotted format (aaa.bbb.ccc.ddd). In most cases, this is the address of the local host, except for multihomed hosts (machines with more than one IP interface).


getMailPort

public int getMailPort()
The server port for SMTP (default 25). A valid port number (a value between 1 and 65535) is required for the connection to take place. The property must be set before a connection is attempted and cannot be changed while a connection is in progress. Any attempt to change the MailPort while connected will fail with an error.


setMailPort

public void setMailPort(int mailPort)
                 throws IPWorksException
The server port for SMTP (default 25). A valid port number (a value between 1 and 65535) is required for the connection to take place. The property must be set before a connection is attempted and cannot be changed while a connection is in progress. Any attempt to change the MailPort while connected will fail with an error.


getMailServer

public java.lang.String getMailServer()
The name or address of a mail server (mail relay). The MailServer property specifies the IP address (IP number in dotted internet format) or Domain Name for a mail relay through which messages will be routed. It is set before a connection is attempted and cannot be changed once a connection is in progress.

The current version of the class does not provide a default value for the mail relay. You must provide a host name yourself. Generally, any internet host with an SMTP server will suffice (a UNIX host for example), but it is preferable to select a MailServer that is close to the machine sending mail.

If the MailServer property is set to a Domain Name, a DNS request is initiated and upon successful termination of the request, the MailServer property is set to the corresponding address. If the search is not successful, an error is returned.


setMailServer

public void setMailServer(java.lang.String mailServer)
                   throws IPWorksException
The name or address of a mail server (mail relay). The MailServer property specifies the IP address (IP number in dotted internet format) or Domain Name for a mail relay through which messages will be routed. It is set before a connection is attempted and cannot be changed once a connection is in progress.

The current version of the class does not provide a default value for the mail relay. You must provide a host name yourself. Generally, any internet host with an SMTP server will suffice (a UNIX host for example), but it is preferable to select a MailServer that is close to the machine sending mail.

If the MailServer property is set to a Domain Name, a DNS request is initiated and upon successful termination of the request, the MailServer property is set to the corresponding address. If the search is not successful, an error is returned.


getMaxHeaderLength

public int getMaxHeaderLength()
Maximum length for headers to avoid line folding (default 80). The MaxHeaderLength specifies the maximum line length supported by the mail delivery system. Any headers longer than MaxHeaderLength are folded as specified in RFC 822.

It is generally a good idea to use a MaxHeaderLength of less than 100 bytes, although different mail relays and mail servers have different requirements for header lengths.


setMaxHeaderLength

public void setMaxHeaderLength(int maxHeaderLength)
                        throws IPWorksException
Maximum length for headers to avoid line folding (default 80). The MaxHeaderLength specifies the maximum line length supported by the mail delivery system. Any headers longer than MaxHeaderLength are folded as specified in RFC 822.

It is generally a good idea to use a MaxHeaderLength of less than 100 bytes, although different mail relays and mail servers have different requirements for header lengths.


getMessageText

public java.lang.String getMessageText()
The full text of the message to send (without headers). The MessageText property contains the full text of the message.

It is advisable that the text contained in this property be a collection of lines with lengths less than or equal to 80 bytes separated by CRLF ("\\r\\n"). The text in the message lines must contain 7-bit characters so that the message can be successfully pass through the multitude of mail systems on the Internet.

The class automatically escapes lines that start with a "." by adding another as specified in RFC 822. The message text is unescaped by the receiving agent, so the process is fully transparent.


setMessageText

public void setMessageText(java.lang.String messageText)
                    throws IPWorksException
The full text of the message to send (without headers). The MessageText property contains the full text of the message.

It is advisable that the text contained in this property be a collection of lines with lengths less than or equal to 80 bytes separated by CRLF ("\\r\\n"). The text in the message lines must contain 7-bit characters so that the message can be successfully pass through the multitude of mail systems on the Internet.

The class automatically escapes lines that start with a "." by adding another as specified in RFC 822. The message text is unescaped by the receiving agent, so the process is fully transparent.


getOtherHeaders

public java.lang.String getOtherHeaders()
An RFC 822 compliant string consisting of extra headers. The OtherHeaders property contains a string of headers to be appended to the message headers created from other properties like To , Subject , etc.

The headers must of the format "header: value" as specified in RFC 822. Header lines should be separated by CRLF ("\\r\\n").

Use this property with caution. If OtherHeaders contains invalid headers, message delivery might not be successful.

The OtherHeaders property is useful for extending the functionality of the class. A good example is delivery of MIME encoded messages.


setOtherHeaders

public void setOtherHeaders(java.lang.String otherHeaders)
                     throws IPWorksException
An RFC 822 compliant string consisting of extra headers. The OtherHeaders property contains a string of headers to be appended to the message headers created from other properties like To , Subject , etc.

The headers must of the format "header: value" as specified in RFC 822. Header lines should be separated by CRLF ("\\r\\n").

Use this property with caution. If OtherHeaders contains invalid headers, message delivery might not be successful.

The OtherHeaders property is useful for extending the functionality of the class. A good example is delivery of MIME encoded messages.


getReplyTo

public java.lang.String getReplyTo()
A mail address to reply to (optional). If the ReplyTo property contains a non-empty string, a Reply-To SMTP header is created for the message. This header shows the address to use for replies (useful if this address is different from the one in From ).

If the resulting Reply-To header is longer than MaxHeaderLength , then it is folded according to RFC 822 specifications.


setReplyTo

public void setReplyTo(java.lang.String replyTo)
                throws IPWorksException
A mail address to reply to (optional). If the ReplyTo property contains a non-empty string, a Reply-To SMTP header is created for the message. This header shows the address to use for replies (useful if this address is different from the one in From ).

If the resulting Reply-To header is longer than MaxHeaderLength , then it is folded according to RFC 822 specifications.


getSubject

public java.lang.String getSubject()
The subject of the mail message (optional). The string in Subject is sent with a Subject SMTP header to the mail recipient.

If the resulting Subject header is longer than MaxHeaderLength , then it is folded according to RFC 822 specifications.


setSubject

public void setSubject(java.lang.String subject)
                throws IPWorksException
The subject of the mail message (optional). The string in Subject is sent with a Subject SMTP header to the mail recipient.

If the resulting Subject header is longer than MaxHeaderLength , then it is folded according to RFC 822 specifications.


getTo

public java.lang.String getTo()
A comma separated list of addresses for destinations (required). The To property specifies a comma separated list of destinations for the mail message. A copy of the message is sent to each of them, and a To SMTP header is created containing the destination addresses.

The class will return an error if the MailServer returns an error code about any email address specified in To or Cc but it will only fire an Error event if the same happens with an email address specified in BCc .

If the resulting To header is longer than MaxHeaderLength , then it is folded according to RFC 822 specifications.


setTo

public void setTo(java.lang.String to)
           throws IPWorksException
A comma separated list of addresses for destinations (required). The To property specifies a comma separated list of destinations for the mail message. A copy of the message is sent to each of them, and a To SMTP header is created containing the destination addresses.

The class will return an error if the MailServer returns an error code about any email address specified in To or Cc but it will only fire an Error event if the same happens with an email address specified in BCc .

If the resulting To header is longer than MaxHeaderLength , then it is folded according to RFC 822 specifications.


fireEndTransfer

public void fireEndTransfer()
Fired when the message text completes transferring. (Called internally to dispatch the event.)
See Also:
SmtpEndTransferEvent

fireError

public void fireError(int errorCode,
                      java.lang.String description)
Information about errors during data delivery. (Called internally to dispatch the event.)
See Also:
SmtpErrorEvent

fireExpand

public void fireExpand(java.lang.String address)
Fired for every email address returned by the server when Action is set to Expand . (Called internally to dispatch the event.)
See Also:
SmtpExpandEvent

firePITrail

public void firePITrail(int direction,
                        java.lang.String message)
Traces the commands sent to the mail server, and the respective replies. (Called internally to dispatch the event.)
See Also:
SmtpPITrailEvent

fireStartTransfer

public void fireStartTransfer()
Fired when the message text starts transferring. (Called internally to dispatch the event.)
See Also:
SmtpStartTransferEvent

fireTransfer

public void fireTransfer(int bytesTransferred)
Fired while the message text gets transferred to MailServer . (Called internally to dispatch the event.)
See Also:
SmtpTransferEvent

addSmtpEventListener

public void addSmtpEventListener(SmtpEventListener l)
                          throws java.util.TooManyListenersException

removeSmtpEventListener

public void removeSmtpEventListener(SmtpEventListener l)

IP*Works!

Copyright (c) 1995-2000 by /n software inc. - All rights reserved.