- java.lang.Object
-
- javax.mail.Service
-
- javax.mail.Transport
-
public abstract class Transport extends Service
An abstract class that models a message transport. Subclasses provide actual implementations.Note that
Transport
extends theService
class, which provides many common methods for naming transports, connecting to transports, and listening to connection events.- Author:
- John Mani, Max Spivak, Bill Shannon
- See Also:
Service
,ConnectionEvent
,TransportEvent
-
-
Constructor Summary
Constructors Constructor and Description Transport(Session session, URLName urlname)
Constructor.
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method and Description void
addTransportListener(TransportListener l)
Add a listener for Transport events.protected void
notifyTransportListeners(int type, Address[] validSent, Address[] validUnsent, Address[] invalid, Message msg)
Notify all TransportListeners.void
removeTransportListener(TransportListener l)
Remove a listener for Transport events.static void
send(Message msg)
Send a message.static void
send(Message msg, Address[] addresses)
Send the message to the specified addresses, ignoring any recipients specified in the message itself.static void
send(Message msg, Address[] addresses, String user, String password)
Send the message to the specified addresses, ignoring any recipients specified in the message itself.static void
send(Message msg, String user, String password)
Send a message.abstract void
sendMessage(Message msg, Address[] addresses)
Send the Message to the specified list of addresses.-
Methods inherited from class javax.mail.Service
addConnectionListener, close, connect, connect, connect, connect, finalize, getURLName, isConnected, notifyConnectionListeners, protocolConnect, queueEvent, removeConnectionListener, setConnected, setURLName, toString
-
-
-
-
Method Detail
-
send
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 theMessage
methodgetAllRecipients
), using message transports appropriate to each address. Thesend
method calls thesaveChanges
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 formTransport.send(msg);
, and should never be invoked using an instance variable.- Parameters:
msg
- the message to send- Throws:
SendFailedException
- if the message could not be sent to some or any of the recipients.MessagingException
- See Also:
Message.saveChanges()
,Message.getAllRecipients()
,send(Message, Address[])
,SendFailedException
-
send
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. Thesend
method calls thesaveChanges
method on the message before sending it.- Parameters:
msg
- the message to sendaddresses
- the addresses to which to send the message- Throws:
SendFailedException
- if the message could not be sent to some or any of the recipients.MessagingException
- See Also:
Message.saveChanges()
,send(Message)
,SendFailedException
-
send
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 theMessage
methodgetAllRecipients
). Thesend
method calls thesaveChanges
method on the message before sending it.Use the specified user name and password to authenticate to the mail server.
- Parameters:
msg
- the message to senduser
- the user namepassword
- this user's password- Throws:
SendFailedException
- if the message could not be sent to some or any of the recipients.MessagingException
- Since:
- JavaMail 1.5
- See Also:
Message.saveChanges()
,send(Message)
,SendFailedException
-
send
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. Thesend
method calls thesaveChanges
method on the message before sending it.Use the specified user name and password to authenticate to the mail server.
- Parameters:
msg
- the message to sendaddresses
- the addresses to which to send the messageuser
- the user namepassword
- this user's password- Throws:
SendFailedException
- if the message could not be sent to some or any of the recipients.MessagingException
- Since:
- JavaMail 1.5
- See Also:
Message.saveChanges()
,send(Message)
,SendFailedException
-
sendMessage
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, thesendMessage
method does not call thesaveChanges
method on the message; the caller should do so.- Parameters:
msg
- The Message to be sentaddresses
- array of addresses to send this message to- Throws:
SendFailedException
- if the send failed because of invalid addresses.MessagingException
- if the connection is dead or not in the connected state- See Also:
TransportEvent
-
addTransportListener
public 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
- the Listener for Transport events- See Also:
TransportEvent
-
removeTransportListener
public 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
- the listener- See Also:
addTransportListener(javax.mail.event.TransportListener)
-
notifyTransportListeners
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.
-
-
Document created the 11/06/2005, last modified the 18/08/2025
Source of the printed document:https://www.gaudry.be/en/java-api-javaee-rf-javax/mail/Transport.html
The infobrol is a personal site whose content is my sole responsibility. The text is available under CreativeCommons license (BY-NC-SA). More info on the terms of use and the author.
References
These references and links indicate documents consulted during the writing of this page, or which may provide additional information, but the authors of these sources can not be held responsible for the content of this page.
The author of this site is solely responsible for the way in which the various concepts, and the freedoms that are taken with the reference works, are presented here. Remember that you must cross multiple source information to reduce the risk of errors.