Top Description Fields Constructors Methods
javax.mail

public abstract Class Transport

extends Service
Class Inheritance
Imports
java.util.ArrayList, .HashMap, .List, .Map, .Vector, javax.mail.event.*

An abstract class that models a message transport. Subclasses provide actual implementations.

Note that Transport extends the Service class, which provides many common methods for naming transports, connecting to transports, and listening to connection events.

Authors
John Mani, Max Spivak, Bill Shannon
See Also
javax.mail.Service, javax.mail.event.ConnectionEvent, javax.mail.event.TransportEvent

Field Summary

Modifier and TypeField and Description
private volatile Vector<TransportListener>
Inherited from javax.mail.Service:
debugsessionurl

Constructor Summary

AccessConstructor and Description
public
Transport(Session
Session object for this Transport.
session
,
URLName
URLName object to be used for this Transport
urlname
)

Constructor.

Method Summary

Modifier and TypeMethod and Description
public synchronized void
addTransportListener(TransportListener
the Listener for Transport events
l
)

Add a listener for Transport events.

protected void
notifyTransportListeners(int
the TransportEvent type
type
,
Address[]
valid addresses to which message was sent
validSent
,
Address[]
valid addresses to which message was not sent
validUnsent
,
Address[]
the invalid addresses
invalid
,
Message
the message
msg
)

Notify all TransportListeners.

public synchronized void
removeTransportListener(TransportListener
the listener
l
)

Remove a listener for Transport events.

public static void
send(Message
the message to send
msg
)

Send a message.

public static void
send(Message
the message to send
msg
,
Address[]
the addresses to which to send the message
addresses
)

Send the message to the specified addresses, ignoring any recipients specified in the message itself.

public static void
send(Message
the message to send
msg
,
String
the user name
user
,
String
this user's password
password
)

Send a message.

public static void
send(Message
the message to send
msg
,
Address[]
the addresses to which to send the message
addresses
,
String
the user name
user
,
String
this user's password
password
)

Send the message to the specified addresses, ignoring any recipients specified in the message itself.

private static void
send0(Message msg, Address[] addresses, String user, String password)

public abstract void
sendMessage(Message
The Message to be sent
msg
,
Address[]
array of addresses to send this message to
addresses
)

Send the Message to the specified list of addresses.

Inherited from javax.mail.Service:
addConnectionListenercloseconnectconnectconnectconnectfinalizegetEventQueuegetSessiongetURLNameisConnectednotifyConnectionListenersprotocolConnectqueueEventremoveConnectionListenersetConnectedsetURLNametoString

Field Detail

transportListenersback to summary
private volatile Vector<TransportListener> transportListeners

Constructor Detail

Transportback to summary
public Transport(Session session, URLName urlname)

Constructor.

Parameters
session:Session

Session object for this Transport.

urlname:URLName

URLName object to be used for this Transport

Method Detail

addTransportListenerback to summary
public synchronized void addTransportListener(TransportListener l)

Add a listener for Transport events.

The default implementation provided here adds this listener to an internal list of TransportListeners.

Parameters
l:TransportListener

the Listener for Transport events

See Also
javax.mail.event.TransportEvent
notifyTransportListenersback to summary
protected void notifyTransportListeners(int type, Address[] validSent, Address[] validUnsent, Address[] invalid, Message msg)

Notify all TransportListeners. Transport implementations are expected to use this method to broadcast TransportEvents.

The provided default implementation queues the event into an internal event queue. An event dispatcher thread dequeues events from the queue and dispatches them to the registered TransportListeners. Note that the event dispatching occurs in a separate thread, thus avoiding potential deadlock problems.

Parameters
type:int

the TransportEvent type

validSent:Address[]

valid addresses to which message was sent

validUnsent:Address[]

valid addresses to which message was not sent

invalid:Address[]

the invalid addresses

msg:Message

the message

removeTransportListenerback to summary
public synchronized void removeTransportListener(TransportListener l)

Remove a listener for Transport events.

The default implementation provided here removes this listener from the internal list of TransportListeners.

Parameters
l:TransportListener

the listener

See Also
addTransportListener
sendback to summary
public static void send(Message msg) throws MessagingException

Send a message. The message will be sent to all recipient addresses specified in the message (as returned from the Message method getAllRecipients), using message transports appropriate to each address. The send method calls the saveChanges method on the message before sending it.

If any of the recipient addresses is detected to be invalid by the Transport during message submission, a SendFailedException is thrown. Clients can get more detail about the failure by examining the exception. Whether or not the message is still sent successfully to any valid addresses depends on the Transport implementation. See SendFailedException for more details. Note also that success does not imply that the message was delivered to the ultimate recipient, as failures may occur in later stages of delivery. Once a Transport accepts a message for delivery to a recipient, failures that occur later should be reported to the user via another mechanism, such as returning the undeliverable message.

In typical usage, a SendFailedException reflects an error detected by the server. The details of the SendFailedException will usually contain the error message from the server (such as an SMTP error message). An address may be detected as invalid for a variety of reasons - the address may not exist, the address may have invalid syntax, the address may have exceeded its quota, etc.

Note that send is a static method that creates and manages its own connection. Any connection associated with any Transport instance used to invoke this method is ignored and not used. This method should only be invoked using the form Transport.send(msg);, and should never be invoked using an instance variable.

Parameters
msg:Message

the message to send

Exceptions
MessagingException:
for other failures
SendFailedException:
if the message could not be sent to some or any of the recipients.
See Also
Message#saveChanges, Message#getAllRecipients, send(Message, Address[]), javax.mail.SendFailedException
sendback to summary
public static void send(Message msg, Address[] addresses) throws MessagingException

Send the message to the specified addresses, ignoring any recipients specified in the message itself. The send method calls the saveChanges method on the message before sending it.

Parameters
msg:Message

the message to send

addresses:Address[]

the addresses to which to send the message

Exceptions
MessagingException:
for other failures
SendFailedException:
if the message could not be sent to some or any of the recipients.
See Also
Message#saveChanges, send(Message), javax.mail.SendFailedException
sendback to summary
public static void send(Message msg, String user, String password) throws MessagingException

Send a message. The message will be sent to all recipient addresses specified in the message (as returned from the Message method getAllRecipients). The send method calls the saveChanges method on the message before sending it.

Use the specified user name and password to authenticate to the mail server.

Parameters
msg:Message

the message to send

user:String

the user name

password:String

this user's password

Exceptions
MessagingException:
for other failures
SendFailedException:
if the message could not be sent to some or any of the recipients.
Since
JavaMail 1.5
See Also
Message#saveChanges, send(Message), javax.mail.SendFailedException
sendback to summary
public static void send(Message msg, Address[] addresses, String user, String password) throws MessagingException

Send the message to the specified addresses, ignoring any recipients specified in the message itself. The send method calls the saveChanges method on the message before sending it.

Use the specified user name and password to authenticate to the mail server.

Parameters
msg:Message

the message to send

addresses:Address[]

the addresses to which to send the message

user:String

the user name

password:String

this user's password

Exceptions
MessagingException:
for other failures
SendFailedException:
if the message could not be sent to some or any of the recipients.
Since
JavaMail 1.5
See Also
Message#saveChanges, send(Message), javax.mail.SendFailedException
send0back to summary
private static void send0(Message msg, Address[] addresses, String user, String password) throws MessagingException
sendMessageback to summary
public abstract void sendMessage(Message msg, Address[] addresses) throws MessagingException

Send the Message to the specified list of addresses. An appropriate TransportEvent indicating the delivery status is delivered to any TransportListener registered on this Transport. Also, if any of the addresses is invalid, a SendFailedException is thrown. Whether or not the message is still sent succesfully to any valid addresses depends on the Transport implementation.

Unlike the static send method, the sendMessage method does not call the saveChanges method on the message; the caller should do so.

Parameters
msg:Message

The Message to be sent

addresses:Address[]

array of addresses to send this message to

Exceptions
MessagingException:
if the connection is dead or not in the connected state
SendFailedException:
if the send failed because of invalid addresses.
See Also
javax.mail.event.TransportEvent