メールの送信処理についての注意事項


メールの送信処理は、 MailAgentsend() メソッドによって行います。その際、メールの送信処理の完了を受け取るためのリスナを設定します。 MailTransportListenermailSent() メソッドはメールの送信完了を受け取るリスナです。

メールの送信後の処理について、以下の点で注意が必要です。

メールの送信状況によっては、send()から処理が戻る前にmailSent()が呼び出される場合があります。 メールを送信する例を以下に示します。


    public void main() {
        MailAgent mailagent = MailAgent.getInstance();
	    mailagent.setMailTransportListener(this);
	    mailagent.send(maildata);   // 1. メール送信
	    // 2. メール送信中処理
        //         :
    }

    public void mailSent(int result) {
        // 3. メール送信完了処理
        //         :
    }

上記の例の場合、メール送信処理(1)の直後にmailSent()が呼び出されてメール送信完了処理(3)を実行、その後メール送信中処理(2)を実行するという処理の流れになることがあります。

たとえば、メールを送信した後に通信中であることを示す処理を開始して、mailSent()の中でその処理を終了していた場合、終了処理の後に通信中を示す処理を開始してしまうことも考えられます。 Java アプリケーション作成時は、この点を考慮する必要があります。