2

mailsystem.NETライブラリを使用して、受信トレイにメッセージを入れます。これは私のコードです:

Imap4Client imap = new Imap4Client();
imap.ConnectSsl("imap.gmail.com", 993);
imap.Login(mylogin, mypassword);
Mailbox mails;
mails = imap.SelectMailbox("INBOX");
Message commomMessage = new Message();
commomMessage.From = new Address("someAddress", "someName");
commomMessage.To.Add(mylogin, "myName");
commomMessage.Subject = "someSubject";
commomMessage.BodyHtml.Text = "Привет мир";//or some cyrillic text 
commomMessage.Date = DateTime.Now;
mails.Append(commomMessage);

Gmailの受信トレイを開くと、このメールが表示されますが、本文に????? ???は「приветмир」ではなく「приветмир」が含まれています。ラテン文字のみが含まれている場合commomMessage.BodyHtml.Textは問題ありません。

4

1 に答える 1

2

Messageクラスが.NETのクラスを継承している場合は、そのプロパティMailMessageを使用して、次のように設定してみてください。BodyEncodingSystem.Text.Encoding.UTF8

commomMessage.BodyEncoding =  System.Text.Encoding.UTF8;

Messageクラスが継承しない場合MailMessageは、電子メールメッセージに適切なエンコーディングを設定する他の方法を見つけてください。これは、UTF8エンコーディングを使用して修正できる問題だと思います。

于 2012-10-18T11:01:19.427 に答える