GrapeCity Secure Mail for .NET 4.0J
Clone メソッド (MailMessage)
使用例 

MailMessageのディープコピーを作成します。
シンタックス
Public Overrides Function Clone() As Object
public override object Clone()

戻り値の型

新しいMailMessage。
使用例
以下のサンプルコードは、カスタム返信メッセージを作成する方法を示します。返信テキストの後に元のメッセージのヘッダフィールドとテキストを追加します。
private MailMessage createCustomReplyMessage(MailMessage originalMessage, string replyText, string fromAddress)
{
    // 元のメッセージのクローンを作成します。
    MailMessage replyMessage = originalMessage.Clone() as MailMessage;

    // 受信者アドレスを設定します。
    if (!String.IsNullOrWhiteSpace(replyMessage.ReplyTo))
        replyMessage.To = replyMessage.ReplyTo;
    else if (!String.IsNullOrWhiteSpace(replyMessage.From))
        replyMessage.To = replyMessage.From;

    // 送信者のアドレスを設定します。
    replyMessage.From = fromAddress;

    // これが返信であることを示すため、件名に"Re: "を付けます。
    replyMessage.Subject = "Re: " + originalMessage.Subject;

    // メッセージの一部のプロパティをクリアします。
    replyMessage.ReplyTo = "";
    replyMessage.Cc = "";
    replyMessage.Sender = "";

    // 返信テキストの後に元のメッセージのヘッダフィールドとテキストを追加して、
    // 返信するメッセージテキストを設定します。
    string messageText = replyText + Environment.NewLine + Environment.NewLine;
    messageText += "From: " + originalMessage.From + Environment.NewLine;
    messageText += "Sent: " + originalMessage.Date.ToString() + Environment.NewLine;
    messageText += "To: " + originalMessage.To + Environment.NewLine;
    messageText += "Subject: " + originalMessage.Subject + Environment.NewLine + Environment.NewLine;

    // プレーンテキストを設定します。
    replyMessage.Text = messageText + originalMessage.Text;

    // HTMLテキストを設定します。
    string html = originalMessage.Html;

    // HTML文字列内の返信テキストを挿入する位置を特定します。
    int textStartIndex = html.ToLower().IndexOf("<body");
    if (textStartIndex == -1) 
        textStartIndex = html.ToLower().IndexOf("<html");
    textStartIndex = html.IndexOf(">", textStartIndex) + 1;

    // 返信テキストをHTML文字列に挿入し、Body.Htmlを設定します。
    messageText = "<div style=\"color:black\">" + messageText.Replace("\r\n", "<br />") + "</div>";
    html = html.Insert(textStartIndex, messageText);
    replyMessage.Html = html;
    return replyMessage;
}
Private Function createCustomReplyMessage(ByVal originalMessage As MailMessage, ByVal replyText As String, ByVal fromAddress As String) As MailMessage
    ' 元のメッセージのクローンを作成します。
    Dim replyMessage As MailMessage = TryCast(originalMessage.Clone(), MailMessage)

    ' 受信者アドレスを設定します。
    If Not String.IsNullOrWhiteSpace(replyMessage.ReplyTo) Then
        replyMessage.To = replyMessage.ReplyTo
    ElseIf Not String.IsNullOrWhiteSpace(replyMessage.From) Then
        replyMessage.To = replyMessage.From
    End If

    ' 送信者のアドレスを設定します。
    replyMessage.From = fromAddress

    ' これが返信であることを示すため、件名に"Re: "を付けます。
    replyMessage.Subject = "Re: " & originalMessage.Subject

    ' メッセージの一部のプロパティをクリアします。
    replyMessage.ReplyTo = ""
    replyMessage.Cc = ""
    replyMessage.Sender = ""

    ' 返信テキストの後に元のメッセージのヘッダフィールドとテキストを追加して、
    ' 返信するメッセージテキストを設定します。
    Dim messageText As String = replyText & Environment.NewLine & Environment.NewLine
    messageText &= "From: " & originalMessage.From & Environment.NewLine
    messageText &= "Sent: " & originalMessage.Date.ToString() & Environment.NewLine
    messageText &= "To: " & originalMessage.To & Environment.NewLine
    messageText &= "Subject: " & originalMessage.Subject & Environment.NewLine & Environment.NewLine

    ' プレーンテキストを設定します。
    replyMessage.Text = messageText & originalMessage.Text

    ' HTMLテキストを設定します。
    Dim html As String = originalMessage.Html

    ' HTML文字列内の返信テキストを挿入する位置を特定します。
    Dim textStartIndex As Integer = html.ToLower().IndexOf("<body")
    If textStartIndex = -1 Then
        textStartIndex = html.ToLower().IndexOf("<html")
    End If
    textStartIndex = html.IndexOf(">", textStartIndex) + 1

    ' 返信テキストをHTML文字列に挿入し、Body.Htmlを設定します。
    messageText = "<div style=""color:black"">" & messageText.Replace(vbCrLf, "<br />") & "</div>"
    html = html.Insert(textStartIndex, messageText)
    replyMessage.Html = html
    Return replyMessage
End Function
参照

参照

MailMessage クラス
MailMessage メンバ

 

 


© 2003, GrapeCity inc. All rights reserved.