Dart.Mail 名前空間 > MailMessage クラス : Forward メソッド |
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 )
// キューに入れられた、送信準備ができた応答メッセージ 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