|
IP*Works! SSL V6 | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Object | +--ipworksssl.Smtps
The SMTPS bean is used to send Internet mail using the SMTP protocol (the Internet mail standard).
The SMTPS bean is the SSL-enabled equivalent (RFC 2487) of the
IP*Works! SMTP bean. The main difference is the introduction of a set of
new configuration settings, properties and events that deal
with SSL security. TheSSLProviderconfiguration setting chooses a security
provider subsystem. TheSSLEnabledProtocolsandSSLCipherStrengthconfiguration settings determine which protocols are enabled and at what security level.
The SSLCertStore , SSLCertSubject , and SSLCertEncoded properties are
used to select a
client certificate if the server is requesting client authentication.
TheSSLSecurityFlagsconfiguration setting, together with the SSLServerAuthentication event
allow you to check the server identity and other security attributes.
Finally, the SSLStatus event provides information about the SSL handshake.
The SMTPS bean 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 SendTo , 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 calling the Send method.
The bean supports message delivery to multiple recipients through the SendTo , Cc , and BCc properties. Simply specify the destination email
addresses separated by commas.
The interface of the bean 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
bean. 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 |
amCRAMMD5
|
static int |
amUserPassword
|
static int |
epNonUrgent
|
static int |
epNormal
|
static int |
epUnspecified
|
static int |
epUrgent
|
static int |
esCompanyConfidential
|
static int |
esPersonal
|
static int |
esPrivate
|
static int |
esUnspecified
|
static int |
fwNone
|
static int |
fwSOCKS4
|
static int |
fwSOCKS5
|
static int |
fwTunnel
|
static int |
miHigh
|
static int |
miLow
|
static int |
miNormal
|
static int |
miUnspecified
|
static int |
sslAutomatic
|
static int |
sslExplicit
|
static int |
sslImplicit
|
static int |
sslNone
|
static int |
sstMachine
|
static int |
sstPEMKey
|
static int |
sstPFXBlob
|
static int |
sstPFXFile
|
static int |
sstUser
|
| Constructor Summary | |
Smtps()
|
|
| Method Summary | |
void |
addSmtpsEventListener(SmtpsEventListener l)
|
java.lang.String |
config(java.lang.String configurationString)
Sets or retrieves a beanconfiguration setting. |
void |
connect()
Connects to the mail relay and sends the SMTP HELO command. |
void |
disconnect()
Disconnect from the SMTP server. |
void |
doEvents()
Processes events from the internal message queue. |
void |
expand(java.lang.String emailAddress)
Asks the MailServer to expand a name or mailing list. |
java.lang.String |
getAttachedFile()
A file to append to MessageText when sending mail. |
int |
getAuthMechanism()
The authentication mechanism to be used when connecting to the mail server. |
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 |
getDeliveryNotificationTo()
Email address to send a delivery notification to. |
java.lang.String |
getFirewallHost()
Name or IP address of firewall (optional). |
java.lang.String |
getFirewallPassword()
A password if authentication is to be used when connecting through the firewall. |
int |
getFirewallPort()
Port of the firewall to connect to. |
int |
getFirewallType()
Determines the type of firewall to connect through. |
java.lang.String |
getFirewallUser()
A user name if authentication is to be used connecting through a firewall. |
java.lang.String |
getFrom()
The email address of the sender (required). |
int |
getImportance()
Importance of the mail message (optional). |
java.lang.String |
getLastReply()
The last reply from the server. |
java.lang.String |
getLocalHost()
The name of the local host or user-assigned IP interface through which connections are initiated or accepted. |
int |
getMailPort()
The server port for SMTP (default 25). |
java.lang.String |
getMailServer()
The name or address of a mail server (mail relay). |
java.lang.String |
getMessageDate()
The Date of the mail message (optional). |
java.lang.String |
getMessageHeaders()
The full headers of the message. |
java.lang.String |
getMessageId()
The MessageId for the message. |
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 |
getPassword()
A login password to login with in the MailServer . |
int |
getPriority()
Priority of the mail message (optional). |
java.lang.String |
getReadReceiptTo()
Email address to send a read receipt to. |
java.lang.String |
getReplyTo()
A mail address to reply to (optional). |
java.lang.String |
getSendTo()
A comma separated list of addresses for destinations (required). |
int |
getSensitivity()
Sensitivity of the mail message (optional). |
byte[] |
getSSLAcceptServerCert()
Instructs the bean to unconditionally accept the server certificate that matches the supplied certificate. |
byte[] |
getSSLCertEncoded()
The SSL certificate (PEM/base64 encoded). |
byte[] |
getSSLCertStore()
The name of the certificate store for the client certificate. |
java.lang.String |
getSSLCertStorePassword()
The password for the certificate store (if any). |
int |
getSSLCertStoreType()
The type of certificate store for the client certificate. |
java.lang.String |
getSSLCertSubject()
The subject of the certificate used for client authentication. |
byte[] |
getSSLServerCert()
The server certificate for the last established connection. |
java.lang.String |
getSSLServerCertStatus()
The verification status of the server certificate for the last established connection. |
int |
getSSLStartMode()
Determines how the bean starts the SSL negotiation. |
java.lang.String |
getSubject()
The subject of the mail message (optional). |
int |
getTimeout()
A timeout for the bean. |
java.lang.String |
getUser()
A user id to login as in the MailServer . |
void |
interrupt()
Interrupt the current method. |
boolean |
isAllowExtensions()
A switch allowing the bean to use ESMTP features (SMTP extensions). |
boolean |
isConnected()
Shows whether the bean is connected. |
boolean |
isIdle()
The current status of the component. |
void |
processQueue(java.lang.String queueDir)
Sends the messages which have previously been queued into QueueDir . |
java.lang.String |
queue(java.lang.String queueDir)
Queues the message into QueueDir . |
void |
removeSmtpsEventListener(SmtpsEventListener l)
|
void |
resetHeaders()
Resets all the message headers to empty. |
void |
send()
Send the current message. |
void |
sendToTerminalAndEmail()
Send to terminal and email. |
void |
sendToTerminalOnly()
Send to terminal only. |
void |
sendToTerminalOrEmail()
Send to terminal or email. |
void |
setAllowExtensions(boolean allowExtensions)
A switch allowing the bean to use ESMTP features (SMTP extensions). |
void |
setAttachedFile(java.lang.String attachedFile)
A file to append to MessageText when sending mail. |
void |
setAuthMechanism(int authMechanism)
The authentication mechanism to be used when connecting to the mail server. |
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 server. |
void |
setConnected(boolean connected)
Shows whether the bean is connected. |
void |
setDeliveryNotificationTo(java.lang.String deliveryNotificationTo)
Email address to send a delivery notification to. |
void |
setFirewallHost(java.lang.String firewallHost)
Name or IP address of firewall (optional). |
void |
setFirewallPassword(java.lang.String firewallPassword)
A password if authentication is to be used when connecting through the firewall. |
void |
setFirewallPort(int firewallPort)
Port of the firewall to connect to. |
void |
setFirewallType(int firewallType)
Determines the type of firewall to connect through. |
void |
setFirewallUser(java.lang.String firewallUser)
A user name if authentication is to be used connecting through a firewall. |
void |
setFrom(java.lang.String from)
The email address of the sender (required). |
void |
setImportance(int importance)
Importance of the mail message (optional). |
void |
setLocalHost(java.lang.String localHost)
The name of the local host or user-assigned IP interface through which connections are initiated or accepted. |
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 |
setMessageDate(java.lang.String messageDate)
The Date of the mail message (optional). |
void |
setMessageId(java.lang.String messageId)
The MessageId for the message. |
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 |
setPassword(java.lang.String password)
A login password to login with in the MailServer . |
void |
setPriority(int priority)
Priority of the mail message (optional). |
void |
setReadReceiptTo(java.lang.String readReceiptTo)
Email address to send a read receipt to. |
void |
setReplyTo(java.lang.String replyTo)
A mail address to reply to (optional). |
void |
setSendTo(java.lang.String sendTo)
A comma separated list of addresses for destinations (required). |
void |
setSensitivity(int sensitivity)
Sensitivity of the mail message (optional). |
void |
setSSLAcceptServerCert(byte[] SSLAcceptServerCert)
Instructs the bean to unconditionally accept the server certificate that matches the supplied certificate. |
void |
setSSLCertEncoded(byte[] SSLCertEncoded)
The SSL certificate (PEM/base64 encoded). |
void |
setSSLCertStore(byte[] SSLCertStore)
The name of the certificate store for the client certificate. |
void |
setSSLCertStorePassword(java.lang.String SSLCertStorePassword)
The password for the certificate store (if any). |
void |
setSSLCertStoreType(int SSLCertStoreType)
The type of certificate store for the client certificate. |
void |
setSSLCertSubject(java.lang.String SSLCertSubject)
The subject of the certificate used for client authentication. |
void |
setSSLStartMode(int SSLStartMode)
Determines how the bean starts the SSL negotiation. |
void |
setSubject(java.lang.String subject)
The subject of the mail message (optional). |
void |
setTimeout(int timeout)
A timeout for the bean. |
void |
setUser(java.lang.String user)
A user id to login as in the MailServer . |
void |
verify(java.lang.String emailAddress)
Send a Verify request to the SMTP server. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
public static final int amUserPassword
public static final int amCRAMMD5
public static final int fwNone
public static final int fwTunnel
public static final int fwSOCKS4
public static final int fwSOCKS5
public static final int miUnspecified
public static final int miHigh
public static final int miNormal
public static final int miLow
public static final int epUnspecified
public static final int epNormal
public static final int epUrgent
public static final int epNonUrgent
public static final int esUnspecified
public static final int esPersonal
public static final int esPrivate
public static final int esCompanyConfidential
public static final int sstUser
public static final int sstMachine
public static final int sstPFXFile
public static final int sstPFXBlob
public static final int sstPEMKey
public static final int sslAutomatic
public static final int sslImplicit
public static final int sslExplicit
public static final int sslNone
| Constructor Detail |
public Smtps()
| Method Detail |
public boolean isAllowExtensions()
If AllowExtensions is true, the bean 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.
public void setAllowExtensions(boolean allowExtensions)
throws IPWorksSSLException
If AllowExtensions is true, the bean 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.
IPWorksSSLExceptionpublic java.lang.String getAttachedFile()
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. This is not the same as sending an email with a file
attachment, but can be used to do so. In order to send an email with
a file attachment, the message or AttachedFile must be MIME encoded.
If you need to send emails with attachments, try the FILEMAILERS component.
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 bean 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.
public void setAttachedFile(java.lang.String attachedFile)
throws IPWorksSSLException
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. This is not the same as sending an email with a file
attachment, but can be used to do so. In order to send an email with
a file attachment, the message or AttachedFile must be MIME encoded.
If you need to send emails with attachments, try the FILEMAILERS component.
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 bean 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.
IPWorksSSLExceptionpublic int getAuthMechanism()
By default, AuthMechanism is amUserPassword (0), and if the User and Password properties are set, the AUTH command is sent to the
server for authentication. If AuthMechanism is set to amCRAMMD5 (1), CRAM-MD5
authentication is used instead.
public void setAuthMechanism(int authMechanism)
throws IPWorksSSLException
By default, AuthMechanism is amUserPassword (0), and if the User and Password properties are set, the AUTH command is sent to the
server for authentication. If AuthMechanism is set to amCRAMMD5 (1), CRAM-MD5
authentication is used instead.
IPWorksSSLExceptionpublic java.lang.String getBCc()
The BCc property specifies a comma separated list of destinations
for 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 bean will return an error if the MailServer returns an error code
about any email address specified in SendTo or Cc but it will only fire an Error event if the same happens
with an email address specified in BCc .
If the resulting header is longer thanMaxHeaderLength, then it is folded according to RFC 822 specifications.
public void setBCc(java.lang.String BCc)
throws IPWorksSSLException
The BCc property specifies a comma separated list of destinations
for 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 bean will return an error if the MailServer returns an error code
about any email address specified in SendTo or Cc but it will only fire an Error event if the same happens
with an email address specified in BCc .
If the resulting header is longer thanMaxHeaderLength, then it is folded according to RFC 822 specifications.
IPWorksSSLExceptionpublic java.lang.String getCc()
The Cc property specifies a comma separated list of destinations
for 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 bean will return an error if the MailServer returns an error code
about any email address specified in SendTo or Cc but it will only fire an Error event
if the same happens
with an email address specified in BCc .
If the resulting header is longer thanMaxHeaderLength, then it is folded according to RFC 822 specifications.
public void setCc(java.lang.String cc)
throws IPWorksSSLException
The Cc property specifies a comma separated list of destinations
for 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 bean will return an error if the MailServer returns an error code
about any email address specified in SendTo or Cc but it will only fire an Error event
if the same happens
with an email address specified in BCc .
If the resulting header is longer thanMaxHeaderLength, then it is folded according to RFC 822 specifications.
IPWorksSSLException
public void setCommand(java.lang.String command)
throws IPWorksSSLException
Check the LastReply property and/or trap the PITrail events
coming from the server to get the response.
IPWorksSSLExceptionpublic boolean isConnected()
Use this property to determine whether the bean is connected to the remote host or not.
public void setConnected(boolean connected)
throws IPWorksSSLException
Use this property to determine whether the bean is connected to the remote host or not.
IPWorksSSLExceptionpublic java.lang.String getDeliveryNotificationTo()
When set, a Return-Receipt-To header is added to the message. DeliveryNotificationTo should be set to an email address which should receive the delivery notification.
public void setDeliveryNotificationTo(java.lang.String deliveryNotificationTo)
throws IPWorksSSLException
When set, a Return-Receipt-To header is added to the message. DeliveryNotificationTo should be set to an email address which should receive the delivery notification.
IPWorksSSLExceptionpublic java.lang.String getFirewallHost()
If a FirewallHost is given, requested connections will be
authenticated through the specified firewall when connecting.
If the FirewallHost property is set to a Domain Name, a DNS request
is initiated. Upon successful termination of the request, the FirewallHost property is set to the corresponding address. If the
search is not successful, an error is returned.
public void setFirewallHost(java.lang.String firewallHost)
throws IPWorksSSLException
If a FirewallHost is given, requested connections will be
authenticated through the specified firewall when connecting.
If the FirewallHost property is set to a Domain Name, a DNS request
is initiated. Upon successful termination of the request, the FirewallHost property is set to the corresponding address. If the
search is not successful, an error is returned.
IPWorksSSLExceptionpublic java.lang.String getFirewallPassword()
if FirewallHost is specified, the FirewallUser and FirewallPassword properties are used to connect and authenticate
to the given firewall. If the authentication fails, a trappable error is fired.
public void setFirewallPassword(java.lang.String firewallPassword)
throws IPWorksSSLException
if FirewallHost is specified, the FirewallUser and FirewallPassword properties are used to connect and authenticate
to the given firewall. If the authentication fails, a trappable error is fired.
IPWorksSSLExceptionpublic int getFirewallPort()
The TCP port for the FirewallHost . See the
description of the FirewallHost property for
details.
Note that the FirewallPort is set automatically
when FirewallType is set to a valid value. See the
description of the FirewallType property for
details.
public void setFirewallPort(int firewallPort)
throws IPWorksSSLException
The TCP port for the FirewallHost . See the
description of the FirewallHost property for
details.
Note that the FirewallPort is set automatically
when FirewallType is set to a valid value. See the
description of the FirewallType property for
details.
IPWorksSSLExceptionpublic int getFirewallType()
The applicable values are the following:
FirewallPort is set to 80.
FirewallPort is set to 1080.
FirewallPort is set to 1080.
public void setFirewallType(int firewallType)
throws IPWorksSSLException
The applicable values are the following:
FirewallPort is set to 80.
FirewallPort is set to 1080.
FirewallPort is set to 1080.
IPWorksSSLExceptionpublic java.lang.String getFirewallUser()
if FirewallHost is specified, the FirewallUser and FirewallPassword properties are used to connect and authenticate
to the given firewall. If the authentication fails, a trappable error is fired.
public void setFirewallUser(java.lang.String firewallUser)
throws IPWorksSSLException
if FirewallHost is specified, the FirewallUser and FirewallPassword properties are used to connect and authenticate
to the given firewall. If the authentication fails, a trappable error is fired.
IPWorksSSLExceptionpublic java.lang.String getFrom()
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: "Friendly Name" <address@company.com> or address@company.com
If the resulting header is longer thanMaxHeaderLength, then it is folded according to RFC 822 specifications.
public void setFrom(java.lang.String from)
throws IPWorksSSLException
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: "Friendly Name" <address@company.com> or address@company.com
If the resulting header is longer thanMaxHeaderLength, then it is folded according to RFC 822 specifications.
IPWorksSSLExceptionpublic boolean isIdle()
Idle will be False if the component is currently busy (communicating
and/or waiting for an answer), and True at all other times.
public int getImportance()
When set, an Importance header will added to the message.
Importance is an indication to the recipient(s) about how important the message is. The possible values are High (1), Normal (2), and Low (3).
public void setImportance(int importance)
throws IPWorksSSLException
When set, an Importance header will added to the message.
Importance is an indication to the recipient(s) about how important the message is. The possible values are High (1), Normal (2), and Low (3).
IPWorksSSLExceptionpublic java.lang.String getLastReply()
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.
public java.lang.String getLocalHost()
The LocalHost property contains the name of the local host
as obtained by the gethostname() system call, or if the
user has assigned an IP address, the value of that address.
In multihomed hosts (machines with more than one IP interface) setting LocalHost to the value of an interface will make the bean initiate connections (or accept in the case of server beans) only through that interface.
If the bean 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).
NOTE: LocalHost is not persistent. You must always set it in
code, and never in the property window.
public void setLocalHost(java.lang.String localHost)
throws IPWorksSSLException
The LocalHost property contains the name of the local host
as obtained by the gethostname() system call, or if the
user has assigned an IP address, the value of that address.
In multihomed hosts (machines with more than one IP interface) setting LocalHost to the value of an interface will make the bean initiate connections (or accept in the case of server beans) only through that interface.
If the bean 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).
NOTE: LocalHost is not persistent. You must always set it in
code, and never in the property window.
IPWorksSSLExceptionpublic int getMailPort()
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 once a connection is established. Any attempt to change this property while connected will fail with an error.
For implicit SSL, use port 465 (please refer to the SSLStartMode property
for more information).
public void setMailPort(int mailPort)
throws IPWorksSSLException
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 once a connection is established. Any attempt to change this property while connected will fail with an error.
For implicit SSL, use port 465 (please refer to the SSLStartMode property
for more information).
IPWorksSSLExceptionpublic java.lang.String getMailServer()
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 bean 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.
If the bean is configured to use a SOCKS firewall, the value assigned to this property may be preceded with a "*". If this is the case, the host name is passed to the firewall unresolved and the firewall performs the DNS resolution.
public void setMailServer(java.lang.String mailServer)
throws IPWorksSSLException
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 bean 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.
If the bean is configured to use a SOCKS firewall, the value assigned to this property may be preceded with a "*". If this is the case, the host name is passed to the firewall unresolved and the firewall performs the DNS resolution.
IPWorksSSLExceptionpublic java.lang.String getMessageDate()
If the MessageDate 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.
Special case: if MessageDate is set to the special value "*", a Date SMTP header reflecting the current date and time is
generated when MessageHeaders is computed and the message is
sent.
RFC 822 contains detailed date format specifications. An example of a valid date is "Fri, 1 Mar 96 21:24:52 EST".
public void setMessageDate(java.lang.String messageDate)
throws IPWorksSSLException
If the MessageDate 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.
Special case: if MessageDate is set to the special value "*", a Date SMTP header reflecting the current date and time is
generated when MessageHeaders is computed and the message is
sent.
RFC 822 contains detailed date format specifications. An example of a valid date is "Fri, 1 Mar 96 21:24:52 EST".
IPWorksSSLExceptionpublic java.lang.String getMessageHeaders()
This property holds the full headers of the message in RFC822 format.
public java.lang.String getMessageId()
When set, the value of MessageId is used as the Message-ID header value of the message. A special value of "*" will automatically generate a random unique id for the message.
public void setMessageId(java.lang.String messageId)
throws IPWorksSSLException
When set, the value of MessageId is used as the Message-ID header value of the message. A special value of "*" will automatically generate a random unique id for the message.
IPWorksSSLExceptionpublic java.lang.String getMessageText()
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 bean automatically escapes lines that start with a "." by adding another as specified in RFC 821. The message text is unescaped by the receiving agent, so the process is fully transparent.
public void setMessageText(java.lang.String messageText)
throws IPWorksSSLException
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 bean automatically escapes lines that start with a "." by adding another as specified in RFC 821. The message text is unescaped by the receiving agent, so the process is fully transparent.
IPWorksSSLExceptionpublic java.lang.String getOtherHeaders()
The OtherHeaders property contains a string of headers
to be appended to the message headers created from other
properties like SendTo , 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 bean. A good example is delivery
of MIME encoded messages.
SPECIAL CASE: if OtherHeaders starts with an empty line (CRLF),
then the value of OtherHeaders is used instead of the normally
computed message headers.
Example (Send an Email With Additional Header)
control.MailServer = "MyServer"
control.From = "me@server.com"
control.SendTo = "recipient@server.com"
control.Subject = "My Subject"
control.MessageText = "This is the message body"
control.OtherHeaders = "HeaderName: Headervalue"
control.Send()
public void setOtherHeaders(java.lang.String otherHeaders)
throws IPWorksSSLException
The OtherHeaders property contains a string of headers
to be appended to the message headers created from other
properties like SendTo , 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 bean. A good example is delivery
of MIME encoded messages.
SPECIAL CASE: if OtherHeaders starts with an empty line (CRLF),
then the value of OtherHeaders is used instead of the normally
computed message headers.
Example (Send an Email With Additional Header)
control.MailServer = "MyServer"
control.From = "me@server.com"
control.SendTo = "recipient@server.com"
control.Subject = "My Subject"
control.MessageText = "This is the message body"
control.OtherHeaders = "HeaderName: Headervalue"
control.Send()
IPWorksSSLExceptionpublic java.lang.String getPassword()
MailServer .
If the Password property is set to a non-empty string,
then when connecting to the MailServer an AUTH or CRAM-MD5 (depending on the value of AuthMechanism )
command is sent in order to provide authentication
information for the user.
public void setPassword(java.lang.String password)
throws IPWorksSSLException
MailServer .
If the Password property is set to a non-empty string,
then when connecting to the MailServer an AUTH or CRAM-MD5 (depending on the value of AuthMechanism )
command is sent in order to provide authentication
information for the user.
IPWorksSSLExceptionpublic int getPriority()
When set, a Priority header will be added to the message. Priority is an indication about the delivery priority of the message. The possible values are epNormal, epUrgent, and epNonUrgent.
public void setPriority(int priority)
throws IPWorksSSLException
When set, a Priority header will be added to the message. Priority is an indication about the delivery priority of the message. The possible values are epNormal, epUrgent, and epNonUrgent.
IPWorksSSLExceptionpublic java.lang.String getReadReceiptTo()
When set, a Disposition-Notification-To header is added to the message. ReadReceiptTo should be set to an email address which should receive the read-receipt.
public void setReadReceiptTo(java.lang.String readReceiptTo)
throws IPWorksSSLException
When set, a Disposition-Notification-To header is added to the message. ReadReceiptTo should be set to an email address which should receive the read-receipt.
IPWorksSSLExceptionpublic java.lang.String getReplyTo()
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 header is longer thanMaxHeaderLength, then it is folded according to RFC 822 specifications.
public void setReplyTo(java.lang.String replyTo)
throws IPWorksSSLException
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 header is longer thanMaxHeaderLength, then it is folded according to RFC 822 specifications.
IPWorksSSLExceptionpublic java.lang.String getSendTo()
The SendTo 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.
Examples of valid addresses are: "Friendly Name" <address@company.com> or address@company.com
The bean will fail if the MailServer returns an error code
about any email address specified in SendTo or Cc but it
will silently ignore the error if the same happens
with an email address specified in BCc .
If the resulting header is longer thanMaxHeaderLength, then it is folded according to RFC 822 specifications.
public void setSendTo(java.lang.String sendTo)
throws IPWorksSSLException
The SendTo 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.
Examples of valid addresses are: "Friendly Name" <address@company.com> or address@company.com
The bean will fail if the MailServer returns an error code
about any email address specified in SendTo or Cc but it
will silently ignore the error if the same happens
with an email address specified in BCc .
If the resulting header is longer thanMaxHeaderLength, then it is folded according to RFC 822 specifications.
IPWorksSSLExceptionpublic int getSensitivity()
An indication of how sensitive it is to disclose the message to people other than the recipients of the message. When set, a Sensitivity header will added to the message. Possible values are: esPersonal (1), esPrivate (2), and esCompanyConfidential (3).
public void setSensitivity(int sensitivity)
throws IPWorksSSLException
An indication of how sensitive it is to disclose the message to people other than the recipients of the message. When set, a Sensitivity header will added to the message. Possible values are: esPersonal (1), esPrivate (2), and esCompanyConfidential (3).
IPWorksSSLExceptionpublic byte[] getSSLAcceptServerCert()
If it finds any issues with the certificate presented by the server, the bean will normally terminate the connection with an error.
You may override this behavior by supplying a value for SSLAcceptServerCert .
If the certificate supplied in SSLAcceptServerCert is the same as the
certificate presented by the server, then the server
certificate is accepted unconditionally, and the connection will continue
normally.
Please note that this functionality is provided only for cases where you otherwise know that you are communicating with the right server. If used improperly, these property will create a security breach. Use it at your own risk.
public void setSSLAcceptServerCert(byte[] SSLAcceptServerCert)
throws IPWorksSSLException
If it finds any issues with the certificate presented by the server, the bean will normally terminate the connection with an error.
You may override this behavior by supplying a value for SSLAcceptServerCert .
If the certificate supplied in SSLAcceptServerCert is the same as the
certificate presented by the server, then the server
certificate is accepted unconditionally, and the connection will continue
normally.
Please note that this functionality is provided only for cases where you otherwise know that you are communicating with the right server. If used improperly, these property will create a security breach. Use it at your own risk.
IPWorksSSLExceptionpublic byte[] getSSLCertEncoded()
This property is used to assign a specific certificate for
SSL client authentication (SSL server authentication in
the case of the IPDaemonS bean).
The SSLCertStore and SSLCertSubject properties may also be used to specify a certificate.
When SSLCertEncoded is set, a search is initiated in the current SSLCertStore for the private key of the certificate. If the key
is found, SSLCertSubject is updated to reflect the full subject
of the selected certificate, otherwise SSLCertSubject is set
to empty string.
public void setSSLCertEncoded(byte[] SSLCertEncoded)
throws IPWorksSSLException
This property is used to assign a specific certificate for
SSL client authentication (SSL server authentication in
the case of the IPDaemonS bean).
The SSLCertStore and SSLCertSubject properties may also be used to specify a certificate.
When SSLCertEncoded is set, a search is initiated in the current SSLCertStore for the private key of the certificate. If the key
is found, SSLCertSubject is updated to reflect the full subject
of the selected certificate, otherwise SSLCertSubject is set
to empty string.
IPWorksSSLExceptionpublic byte[] getSSLCertStore()
The SSLCertStoreType property specifies the type of the
certificate store specified by SSLCertStore . If the store
is password protected, specify the password in SSLCertStorePassword .
SSLCertStore is used in conjunction with the SSLCertSubject property in order to specify client certificates. If SSLCertStore has a value, and SSLCertSubject or SSLCertEncoded is set, a search for a certificate is initiated. Please refer to the SSLCertSubject property for details.
Designations of certificate stores are platform-dependent.
The following are designations of the most common User and Machine certificate stores in Windows:
In Java, the certificate store normally is a file containing certificates and optional private keys.
When the certificate store type is PFXFile, this property must be set to the name of the file. When the type is PFXBlob, the property must be set to the binary contents of a PFX file (i.e. PKCS12 certificate store).
If the provider is OpenSSL, the certificate store is a file containing a certificate and a private key. This property must be set to the name of the file.
public void setSSLCertStore(byte[] SSLCertStore)
throws IPWorksSSLException
The SSLCertStoreType property specifies the type of the
certificate store specified by SSLCertStore . If the store
is password protected, specify the password in SSLCertStorePassword .
SSLCertStore is used in conjunction with the SSLCertSubject property in order to specify client certificates. If SSLCertStore has a value, and SSLCertSubject or SSLCertEncoded is set, a search for a certificate is initiated. Please refer to the SSLCertSubject property for details.
Designations of certificate stores are platform-dependent.
The following are designations of the most common User and Machine certificate stores in Windows:
In Java, the certificate store normally is a file containing certificates and optional private keys.
When the certificate store type is PFXFile, this property must be set to the name of the file. When the type is PFXBlob, the property must be set to the binary contents of a PFX file (i.e. PKCS12 certificate store).
If the provider is OpenSSL, the certificate store is a file containing a certificate and a private key. This property must be set to the name of the file.
IPWorksSSLExceptionpublic java.lang.String getSSLCertStorePassword()
If the certificate store is of a type that requires a password, the value of this property is used to open the certificate store.
public void setSSLCertStorePassword(java.lang.String SSLCertStorePassword)
throws IPWorksSSLException
If the certificate store is of a type that requires a password, the value of this property is used to open the certificate store.
IPWorksSSLExceptionpublic int getSSLCertStoreType()
This property can take one of the following values:
public void setSSLCertStoreType(int SSLCertStoreType)
throws IPWorksSSLException
This property can take one of the following values:
IPWorksSSLExceptionpublic java.lang.String getSSLCertSubject()
When this property is set, a search is performed in the current certificate store certificate with matching subject.
If an exact match is not found, the store is searched for subjects containing the value of the property.
When setting the property to a partial subject, CN= should be omitted. For example, the following code would find the certificate with subject CN=Test Certificate, OU=People, C=US
Example (Searching with partial subject)
Control.CertSubject = "Test"
If a match is not found, the property is set to an empty string, and no certificate is selected.
The special value "*" picks a random certificate in the certificate store.
If a matching certificate is found, the SSLCertSubject property
is set to the full subject of the matching certificate.
public void setSSLCertSubject(java.lang.String SSLCertSubject)
throws IPWorksSSLException
When this property is set, a search is performed in the current certificate store certificate with matching subject.
If an exact match is not found, the store is searched for subjects containing the value of the property.
When setting the property to a partial subject, CN= should be omitted. For example, the following code would find the certificate with subject CN=Test Certificate, OU=People, C=US
Example (Searching with partial subject)
Control.CertSubject = "Test"
If a match is not found, the property is set to an empty string, and no certificate is selected.
The special value "*" picks a random certificate in the certificate store.
If a matching certificate is found, the SSLCertSubject property
is set to the full subject of the matching certificate.
IPWorksSSLExceptionpublic byte[] getSSLServerCert()
SSLServerCert contains the server certificate for the
last established connection.
SSLServerCert is reset every time a new connection is attempted.
public java.lang.String getSSLServerCertStatus()
When the verification fails, SSLServerCertStatus contains
a string that indicates the reason(s) why, otherwise, it
contains the string "OK".
Please note that the value of SSLServerCertStatus must
be considered as only a suggestion as to the validity of the
certificate. Application software must use its own logic
to determine whether to accept the certificate or not, by using
the SSLServerCert to access other certificate
properties, or other application-specific information.
SSLServerCertStatus is reset an empty string every time a new
connection is attempted.
public int getSSLStartMode()
The SSLStartMode property may have one of the following values:
SSLStartMode is set to sslExplicit . In all other cases, SSL negotiation will be implicit
( sslImplicit ).
public void setSSLStartMode(int SSLStartMode)
throws IPWorksSSLException
The SSLStartMode property may have one of the following values:
SSLStartMode is set to sslExplicit . In all other cases, SSL negotiation will be implicit
( sslImplicit ).
IPWorksSSLExceptionpublic java.lang.String getSubject()
The string in Subject is sent with a Subject SMTP header to the mail recipient.
If the resulting header is longer thanMaxHeaderLength, then it is folded according to RFC 822 specifications.
public void setSubject(java.lang.String subject)
throws IPWorksSSLException
The string in Subject is sent with a Subject SMTP header to the mail recipient.
If the resulting header is longer thanMaxHeaderLength, then it is folded according to RFC 822 specifications.
IPWorksSSLExceptionpublic int getTimeout()
If the Timeout property is set to 0, all operations
will run uninterrupted until successful completion, or an error condition
is encountered.
If Timeout is set to a positive value, the bean will
wait for the operation to complete before returning control.
The bean will use DoEvents to enter an efficient wait loop
during any potential waiting period, making sure that all system events
are processed immediately as they arrive. This ensures that the host
application does not "freeze" and remains responsive.
If Timeout expires, and the operation is not yet complete,
the bean throws an IPWorksException
raises an IPWorksException exception
.
Please note that by default, all timeouts are inactivity timeouts ,
i.e. the timeout period is extended by Timeout seconds when
data is successfully sent or received.
Optionally, the behavior of the bean may be changed to absolute timeouts , i.e. the bean will wait for a maximum
of Timeout seconds since the beginning of the operation, without
extending the timeout period during communications.
This behavior is controlled by theAbsoluteTimeoutconfiguration setting.
The default value for the Timeout property is 60 (seconds).
public void setTimeout(int timeout)
throws IPWorksSSLException
If the Timeout property is set to 0, all operations
will run uninterrupted until successful completion, or an error condition
is encountered.
If Timeout is set to a positive value, the bean will
wait for the operation to complete before returning control.
The bean will use DoEvents to enter an efficient wait loop
during any potential waiting period, making sure that all system events
are processed immediately as they arrive. This ensures that the host
application does not "freeze" and remains responsive.
If Timeout expires, and the operation is not yet complete,
the bean throws an IPWorksException
raises an IPWorksException exception
.
Please note that by default, all timeouts are inactivity timeouts ,
i.e. the timeout period is extended by Timeout seconds when
data is successfully sent or received.
Optionally, the behavior of the bean may be changed to absolute timeouts , i.e. the bean will wait for a maximum
of Timeout seconds since the beginning of the operation, without
extending the timeout period during communications.
This behavior is controlled by theAbsoluteTimeoutconfiguration setting.
The default value for the Timeout property is 60 (seconds).
IPWorksSSLExceptionpublic java.lang.String getUser()
MailServer .
If the User property is set to a non-empty string,
then when connecting to the MailServer an AUTH or CRAM-MD5 (depending on the value of AuthMechanism )
command is sent in order to provide authentication
information for the user.
public void setUser(java.lang.String user)
throws IPWorksSSLException
MailServer .
If the User property is set to a non-empty string,
then when connecting to the MailServer an AUTH or CRAM-MD5 (depending on the value of AuthMechanism )
command is sent in order to provide authentication
information for the user.
IPWorksSSLException
public java.lang.String config(java.lang.String configurationString)
throws IPWorksSSLException
Config is a generic method available in every bean.
It is used to set and retrieveconfiguration settingsfor the
bean.
Configuration settings are similar in functionality to properties,
but they are rarely used. In order to avoid "polluting" the property
namespace of the bean, access to these internal properties is provided through the Config method.
To set a configuration setting named PROPERTY , you must call Config("PROPERTY=VALUE") , where VALUE is the value of the setting expressed as a string. For boolean values, use the strings "True", "False", "0", "1", "Yes", or "No" (case does not matter).
To read (query) the value of a configuration setting, you must call Config("PROPERTY") . The value will be returned as a string.
IPWorksSSLException
public void connect()
throws IPWorksSSLException
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 method.
Example (Connect and Send an Email)
control.MailServer = "MyServer"
control.From = "me@server.com"
control.SendTo = "recipient@server.com"
control.Subject = "My Subject"
control.MessageText = "This is the message body"
control.Connect()
control.Send()
control.Disconnect()
IPWorksSSLException
public void disconnect()
throws IPWorksSSLException
Disconnects from the mail relay.
IPWorksSSLException
public void doEvents()
throws IPWorksSSLException
When DoEvents is called, the bean processes any
available events. If no events are available, it waits for a
preset period of time, and then returns.
IPWorksSSLException
public void expand(java.lang.String emailAddress)
throws IPWorksSSLException
MailServer to expand a name or mailing list.
The resulting response is provided in
one or more Expand events (one for each address).
The bean will try to connect to the mail relay if it is not already connected.
IPWorksSSLException
public void interrupt()
throws IPWorksSSLException
If there is no method in progress, Interrupt simply returns doing nothing.
IPWorksSSLException
public void processQueue(java.lang.String queueDir)
throws IPWorksSSLException
The PITrail event shows the interaction with the server as
messages as are processed.
ProcessQueue looks for in the directory for files with extension
".queued" and starts processing them.
When processing starts, the file extension is changed to ".sending". If an error happens at this stage, the sending process is aborted, and the file extension is changed to ".failed".
If the file is successfully sent, the file is normally deleted, unless theKeepQueueconfiguration setting is set to True, in which case the file extension is instead changed to ".sent" and the queue file is not deleted.
IPWorksSSLException
public java.lang.String queue(java.lang.String queueDir)
throws IPWorksSSLException
The message is queued into a unique file into the directory QueueDir for future processing.
QueueDir must already exist, or an error will be generated.
The method returns the name of the unique queue file created in QueueDir . The file extension is ".queued".
Please refer to the ProcessQueue method for more information on email queue
processing.
IPWorksSSLException
public void resetHeaders()
throws IPWorksSSLException
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.
IPWorksSSLException
public void send()
throws IPWorksSSLException
If the bean is not connected to the mail relay, a connection is created, the message is sent, and then the connection is closed unless an error occurs.
If the bean is already connected (by use of the Connect method), the
connection will remain open after the message is sent. To disconnect, call the Disconnect method.
Example (Send an Email)
SMTPControl.MailServer = "MyServer"
SMTPControl.From = "me@server.com"
SMTPControl.SendTo = "recipient@server.com"
SMTPControl.Subject = "My Subject"
SMTPControl.MessageText = "This is the message body"
SMTPControl.Send()
IPWorksSSLException
public void sendToTerminalAndEmail()
throws IPWorksSSLException
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 method requires
that AllowExtensions is set to True and is not supported by all
mail relays.
IPWorksSSLException
public void sendToTerminalOnly()
throws IPWorksSSLException
Similar to Send but requests instead that the message is
sent 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 method requires
that AllowExtensions is set to True and is not supported by all
mail relays.
IPWorksSSLException
public void sendToTerminalOrEmail()
throws IPWorksSSLException
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 method requires
that AllowExtensions is set to True and is not supported by all
mail relays.
IPWorksSSLException
public void verify(java.lang.String emailAddress)
throws IPWorksSSLException
Asks the MailServer to verify the email address provided in the 'EmailAddress' parameter.
IPWorksSSLException
public void addSmtpsEventListener(SmtpsEventListener l)
throws java.util.TooManyListenersException
java.util.TooManyListenersExceptionpublic void removeSmtpsEventListener(SmtpsEventListener l)
|
IP*Works! SSL V6 | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||