javax.mail
クラス Transport

java.lang.Object
  上位を拡張 javax.mail.Service
      上位を拡張 javax.mail.Transport
直系の既知のサブクラス:
SMTPTransport

public abstract class Transport
extends Service

メッセージトランスポートをモデル化する抽象クラスです。 サブクラスは実際の実装を提供します。

TransportService クラスを拡張します。 トランスポートの命名、トランスポートへの接続、 接続イベントのリスニングの為の多数の共通メソッドを提供します。

関連項目:
Service, ConnectionEvent, TransportEvent

フィールドの概要
 
クラス javax.mail.Service から継承されたフィールド
debug, session, url
 
コンストラクタの概要
Transport(Session session, URLName urlname)
          コンストラクタです。
 
メソッドの概要
 void addTransportListener(TransportListener l)
          Transport イベントのリスナーを追加します。
protected  void notifyTransportListeners(int type, Address[] validSent, Address[] validUnsent, Address[] invalid, Message msg)
          全ての TransportListener に通知します。
 void removeTransportListener(TransportListener l)
          Transport イベントのリスナーを削除します。
static void send(Message msg)
          メッセージを送信します。
static void send(Message msg, Address[] addresses)
          指定されたアドレスにメッセージを送信します。
abstract  void sendMessage(Message msg, Address[] addresses)
          Message を指定されたリストのアドレスに送信します。
 
クラス javax.mail.Service から継承されたメソッド
addConnectionListener, close, connect, connect, connect, connect, finalize, getURLName, isConnected, notifyConnectionListeners, protocolConnect, queueEvent, removeConnectionListener, setConnected, setURLName, toString
 
クラス java.lang.Object から継承されたメソッド
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

コンストラクタの詳細

Transport

public Transport(Session session,
                 URLName urlname)
コンストラクタです。

パラメータ:
session - この Transport の Session オブジェクト
urlname - この Transport に使用される URLName オブジェクト
メソッドの詳細

send

public static void send(Message msg)
                 throws MessagingException
メッセージを送信します。メッセージは、メッセージに指定された 全ての受信アドレス (Message メソッド getAllRecipients から返される) に、 各アドレスに適切なメッセージトランスポートを使用して送信されます。 send メソッドは、メッセージを送信する前に、 メッセージ上で saveChanges メソッドを呼び出します。

メッセージの送信中、Transport により受信者アドレスの何れかについて無効である事が検出された場合、 SendFailedException がスローされます。 クライアントはこの例外を検査する事で、障害の詳細情報を得る事ができます。 メッセージが有効なアドレスに無事送信されているかどうかは、Transport 実装に依存します。 詳細については SendFailedException を参照して下さい。 又、送信が正常に終了した事は、メッセージが最終的な受信者に届いた事を意味しません。 配信の後の段階で障害が発生する事もあります。 Transport が受信者への配信に関するメッセージを受け取ったら、その後に発生する障害は、 配信されなかったメッセージの返信等、別の仕組みを通して報告される必要があります。

パラメータ:
msg - 送信するメッセージ
例外:
SendFailedException - メッセージが受信者の一部又は全部に送信できなかった場合
MessagingException
関連項目:
Message.saveChanges(), Message.getAllRecipients(), send(Message, Address[]), SendFailedException

send

public static void send(Message msg,
                        Address[] addresses)
                 throws MessagingException
指定されたアドレスにメッセージを送信します。 メッセージ自身に指定された受信者は全て無視します。 send メソッドは、メッセージを送信する前に、 メッセージ上で saveChanges メソッドを呼び出します。

パラメータ:
msg - 送信するメッセージ
addresses - メッセージ送信先のアドレス
例外:
SendFailedException - メッセージが受信者の一部又は全部に送信できなかった場合
MessagingException
関連項目:
Message.saveChanges(), send(Message), SendFailedException

sendMessage

public abstract void sendMessage(Message msg,
                                 Address[] addresses)
                          throws MessagingException
Message を指定されたリストのアドレスに送信します。 配信状態を示す適切な TransportEvent は、この Transport 上に登録されている 全ての TransportListener に配信されます。 又、アドレスの何れかが無効の場合、SendFailedException がスローされます。 但し、有効なアドレスにはメッセージが送信されます。

静的な send メソッドとは異なり、sendMessage メソッドは、 メッセージ上で saveChanges メソッドを呼び出しません。 呼び出し側がこの呼び出しを行う必要があります。

パラメータ:
msg - 送信される Message
addresses - このメッセージの送信先アドレスのリスト
例外:
SendFailedException - 無効なアドレスの為に送信が失敗した場合
MessagingException - 接続が終了している場合、又は接続状態にない場合
関連項目:
TransportEvent

addTransportListener

public void addTransportListener(TransportListener l)
Transport イベントのリスナーを追加します。

ここで提供されるデフォルトの実装は、 このリスナーを内部の TransportListener リストに追加します。

パラメータ:
l - Transport イベントの Listener
関連項目:
TransportEvent

removeTransportListener

public void removeTransportListener(TransportListener l)
Transport イベントのリスナーを削除します。

ここで提供されるデフォルトの実装は、 このリスナーを内部の TransportListener リストから削除します。

パラメータ:
l - リスナー
関連項目:
addTransportListener(javax.mail.event.TransportListener)

notifyTransportListeners

protected void notifyTransportListeners(int type,
                                        Address[] validSent,
                                        Address[] validUnsent,
                                        Address[] invalid,
                                        Message msg)
全ての TransportListener に通知します。 Transport 実装はこのメソッドを使用して、TransportEvent をブロードキャストする必要があります。

提供されるデフォルトの実装は、イベントを内部イベントキューに入れます。 イベントディスパッチャスレッドはキューからイベントを出し、 登録された TransportListener にディスパッチします。 イベントのディスパッチは別個のスレッドで起こるため、デッドロック問題を防ぎます。