2

MVC サイトにフィードバック フォームがあります。このフォームをメールで送信する必要があります。
フォームをテストしたいので、MailMessage オブジェクトを *.eml ファイルとしてディスクに保存します

[HttpGet]
public ActionResult Contacts()
{
    FeedbackForm temp = new FeedbackForm();
    temp.Message = @Resources.Global.Contacts_Form_Message_Field;
    return View(temp);
}

[HttpPost]
public ActionResult Contacts(FeedbackForm Model)
{    
    MailMessage msg = new MailMessage();
    msg.BodyEncoding = Encoding.UTF8;            
    msg.From = new MailAddress(Model.Email,
                              @Resources.Global.Contacts_Form_Email_Title);
    msg.To.Add("tayna-anita@mail.ru");

    string message = @Resources.Global.Contacts_Form_Name_Field + ": "
                     + Model.Name + "\n"
                     + "Email: " + Model.Email + "\n"
                     + @Resources.Global.Contacts_Form_Phone_Field + ": "
                     + Model.Phone + "\n\n"
                     + Model.Message;
    msg.Body = message;
    msg.IsBodyHtml = false;          

    SmtpClient client = new SmtpClient("mysmtphost");
    client.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory;
    client.PickupDirectoryLocation = @"C:\test";

    try
    {
        client.Send(msg);
    }
    catch (Exception ex)
    {
    }

    FeedbackForm tempForm = new FeedbackForm();
    tempForm.Message = @Resources.Global.Contacts_Form_Message_Field;

    return View(tempForm);
}

そして私は得る:

 X-Sender: "Letter from site" <sssssss@mail.ru>  
 X-Receiver: tayna-anita@mail.ru   
 MIME-Version: 1.0   
 From: "Letter from site" <sssssss@mail.ru>  
 To: tayna-anita@mail.ru  
 Date: 21 May 2013 16:57:55 +0400  
 Content-Type: text/plain; charset=utf-8   
 Content-Transfer-Encoding: base64   

 TmFtZTogdGVzdCB0ZXNzc3NzdApFbWFpbDogc3Nzc3Nzc0BtYWlsLnJ1ClBob25lOiA4
 OTIwODcxMzA2MQoKW2F1XSBDaG9pY2VzIChjb25maWRlIGluIG1lKSAtIGhhcnZleSB4
 IG1pa2UgW2F1XSBDaG9pY2VzIChjb25maWRlIGluIG1lKSAtIGhhcnZleSB4IG1pa2Vb
 YXVdIENob2ljZXMgKGNvbmZpZGUgaW4gbWUpIC0gaGFydmV5IHggbWlrZQ==

なぜ手紙の本文はそのように見えるのですか?

サイトから英語とロシア語で手紙を送り、設定しmsg.BodyEncoding = Encoding.UTF8;ます。

エンコーディングで問題が発生しないようにするにはどうすればよいですか?

4

1 に答える 1

2

表示されているのは、Base-64 でエンコードされたメッセージです。これは、電子メールのヘッダーから確認できます。

コンテンツ転送エンコーディング: base64

おそらく、メッセージをプレーンテキスト エディターで開いているため、メールの内容はデコードされていません。

Base64 Decoderを使用してメッセージをデコードすると(すべての電子メール クライアントが自動的に行います)、次のようになります。

名前: test tessssst 電子メール: sssssss@mail.ru 電話: 89208713061

[au] 選択 (私に打ち明ける) - ハーヴェイ x マイク [au] 選択 (私に打ち明ける) - ハービー x マイク [au] 選択 (私に打ち明ける) - ハーヴェイ x マイク

于 2013-05-21T13:17:51.373 に答える