GrapeCity Secure Mail for .NET 4.0J
Forward メソッド
使用例 

Fromに使用されるアドレス。
Toに使用されるアドレス。
メッセージの前に付加されるテキスト。format引数の指定に従って、このテキストが付加されます。
使用するForwardFormat
転送メッセージを作成します。
シンタックス
Public Function Forward( _
   ByVal from As String, _
   ByVal to As String, _
   ByVal comment As String, _
   ByVal format As ForwardFormat _
) As MailMessage
public MailMessage Forward( 
   string from,
   string to,
   string comment,
   ForwardFormat format
)

パラメータ

from
Fromに使用されるアドレス。
to
Toに使用されるアドレス。
comment
メッセージの前に付加されるテキスト。format引数の指定に従って、このテキストが付加されます。
format
使用するForwardFormat

戻り値の型

新しいMailMessage。
解説
Subjectの前に"Fwd: "が付加されます。元のメッセージは変更されません。
使用例
以下のサンプルコードでは、特定の件名行を持つメッセージだけをPopコンポーネントによって取得します。そして、それらのメッセージの"返信"および"転送"応答メッセージを作成してキューに入れます。
// キューに入れられた、送信準備ができた応答メッセージ
List<MailMessage> queuedMessages = new List<MailMessage>();

private void autoReply(object sender)
{
    // サーバーとアカウントの情報を設定します。
    pop1.Session.RemoteEndPoint = new Dart.Mail.IPEndPoint(myServer, Pop.GetDefaultPort(pop1.Session));
    pop1.Session.Username = myUsername;
    pop1.Session.Password = myPassword;

    // 接続してアカウントにログインします。
    pop1.Connect();
    pop1.Authenticate(true, true);

    // アカウントの各メッセージのヘッダを取得し、件名に従って応答を作成します。
    foreach (PopMessage popMessage in pop1.Messages)
    {
        popMessage.Get(0);
        string code = popMessage.Message.Subject;

        // メッセージに特定の件名が含まれる場合は、メッセージ全体を取得した後、自動応答メッセージをキューに入れます。
        switch (code)
        {
            case "ALERT":
                popMessage.Get();
                // 返信メッセージを作成し、送信待ちメッセージのリストに追加します。
                MailMessage replyMessage = popMessage.Message.Reply(fromAddress, "Message acknowledged.");
                queuedMessages.Add(replyMessage);
                break;
            case "ALERT ACK ALL":
                popMessage.Get();
                // 全員に返信メッセージを作成し、送信待ちメッセージのリストに追加します。
                MailMessage replyAllMessage = popMessage.Message.ReplyAll(fromAddress, "Message acknowledged to all.");
                queuedMessages.Add(replyAllMessage);
                break;
            case "ALERT ELEVATE":
                popMessage.Get();
                // 転送メッセージを作成し、送信待ちメッセージのリストに追加します。
                MailMessage forwardMessage = popMessage.Message.Forward(fromAddress, supervisorAddress, "Elevated. Please see message below.", ForwardFormat.Standard);
                queuedMessages.Add(forwardMessage);
                break;
            case "ALERT INFORM":
                popMessage.Get();
                // リダイレクトメッセージを作成し、送信待ちメッセージのリストに追加します。
                MailMessage redirectMessage = popMessage.Message.Forward(fromAddress, colleagueAddress, "Redirected. Please see included message.", ForwardFormat.Redirect);
                queuedMessages.Add(redirectMessage);
                break;
            default:
                break;
        }
    }

    // 適切にログアウトします。
    pop1.Close();

    // キュー内の応答を送信します(このサンプルコードでは実装されていません)。
    sendResponses();
}

private void sendResponses()
{
    // サーバーとアカウントの情報を設定します。
    smtp1.Session.RemoteEndPoint = new IPEndPoint(myServer, Smtp.GetDefaultPort(smtp1.Session));
    smtp1.Session.Username = myUsername;
    smtp1.Session.Password = myPassword;

    // 応答リスト内のすべてのメッセージを送信します。
    foreach (MailMessage message in queuedMessages)
        smtp1.Send(message);
    queuedMessages.Clear();

    // 適切にログアウトします。
    smtp1.Close();
}
' キューに入れられた、送信準備ができた応答メッセージ
Private queuedMessages As New List(Of MailMessage)()

Private Sub autoReply(ByVal sender As Object)
    ' サーバーとアカウントの情報を設定します。
    pop1.Session.RemoteEndPoint = New Dart.Mail.IPEndPoint(myServer, Pop.GetDefaultPort(pop1.Session))
    pop1.Session.Username = myUsername
    pop1.Session.Password = myPassword

    ' 接続してアカウントにログインします。
    pop1.Connect()
    pop1.Authenticate(True, True)

    ' アカウントの各メッセージのヘッダを取得し、件名に従って応答を作成します。
    For Each popMessage As PopMessage In pop1.Messages
        popMessage.Get(0)
        Dim code As String = popMessage.Message.Subject

        ' メッセージに特定の件名が含まれる場合は、メッセージ全体を取得した後、自動応答メッセージをキューに入れます。
        Select Case code
            Case "ALERT"
                popMessage.Get()
                ' 返信メッセージを作成し、送信待ちメッセージのリストに追加します。
                Dim replyMessage As MailMessage = popMessage.Message.Reply(fromAddress, "Message acknowledged.")
                queuedMessages.Add(replyMessage)
            Case "ALERT ACK ALL"
                popMessage.Get()
                ' 全員に返信メッセージを作成し、送信待ちメッセージのリストに追加します。
                Dim replyAllMessage As MailMessage = popMessage.Message.ReplyAll(fromAddress, "Message acknowledged to all.")
                queuedMessages.Add(replyAllMessage)
            Case "ALERT ELEVATE"
                popMessage.Get()
                ' 転送メッセージを作成し、送信待ちメッセージのリストに追加します。
                Dim forwardMessage As MailMessage = popMessage.Message.Forward(fromAddress, supervisorAddress, "Elevated. Please see message below.", ForwardFormat.Standard)
                queuedMessages.Add(forwardMessage)
            Case "ALERT INFORM"
                popMessage.Get()
                ' リダイレクトメッセージを作成し、送信待ちメッセージのリストに追加します。
                Dim redirectMessage As MailMessage = popMessage.Message.Forward(fromAddress, colleagueAddress, "Redirected. Please see included message.", ForwardFormat.Redirect)
                queuedMessages.Add(redirectMessage)
            Case Else
        End Select
    Next popMessage

    ' 適切にログアウトします。
    pop1.Close()

    ' キュー内の応答を送信します(このサンプルコードでは実装されていません)。
    sendResponses()
End Sub

Private Sub sendResponses()
    ' サーバーとアカウントの情報を設定します。
    smtp1.Session.RemoteEndPoint = New IPEndPoint(myServer, Smtp.GetDefaultPort(smtp1.Session))
    smtp1.Session.Username = myUsername
    smtp1.Session.Password = myPassword

    ' 応答リスト内のすべてのメッセージを送信します。
    For Each message As MailMessage In queuedMessages
        smtp1.Send(message)
    Next message
    queuedMessages.Clear()

    ' 適切にログアウトします。
    smtp1.Close()
End Sub
参照

参照

MailMessage クラス
MailMessage メンバ

 

 


© 2003, GrapeCity inc. All rights reserved.