11

こんにちは、system.net.mail.mailmessage を使用して簡単な通知を送信しようとしています。文字列をメッセージ本文として渡すだけです。しかし問題は、複数行のメッセージが送信されたにもかかわらず、文字列に正しい「\r\n」形式の情報があることです。Outlook で開いたメールは、長い 1 行で表示されます。ただし、Outlook でソースを表示すると、正しい改行形式でメッセージが表示されます。

例: 元のメッセージは次のようになります。

line1
line 2
line 3

ただし、Outlook では次のように表示されます。

line1 line 2 line 3

Outlook からのソースの表示は引き続き表示されます

line1
line 2
line 3

Outlook に正しい改行情報を含むメッセージを表示させるにはどうすればよいですか?

4

10 に答える 10

14

Outlookは改行を削除することがあります(通常、それを行ったというコメントもポップアップ表示されます)。これをいつ行うかのルールについて正確にはわかりませんが.、それぞれの最後に(ピリオド)を追加するかどうかはかなり確信しています行はそれらを削除しません。

実はこちらの記事を見るとHTMLやRTFでメールを送ることでも解決できそうです: Outlookでプレーンテキスト形式で投稿すると改行が消える

于 2010-10-14T08:34:45.637 に答える
3

これは私のために働いた

mMailMessage.IsBodyHtml = true;
Literal1.Text = "Dear Admin, <br/>You have recieved an enquiry onyour Website. Following are the details of enquiry:<br/><br/>Name: " + TextBox2.Text + "<br/>Address: " + TextBox3.Text + ", " + TextBox4.Text + "<br/>Phone: " + TextBox5.Text + "<br/>Email: " + TextBox2.Text + "<br/>Query: " + TextBox6.Text+"<br/> Regards, <br/> Veritas Team";
mMailMessage.Body = Literal1.Text;
于 2012-10-28T19:53:33.530 に答える
3

以下のような文字列を用意してください

"Your string.\n"

と:

ms.IsBodyHtml = false;

ただし、ジャンクフォルダーに入る場合があります

于 2011-07-19T14:21:09.377 に答える
1

Outlookは常に改行を削除しますが、使用できるのは次のとおりです。

使用する代わりに:Environment.Newlineまたは\ n \ r

文字列MyString+="これは私のテキストです"+"%0d%0A"を使用する必要があります

この%0d%0Aは、Outlookによって改行のエスケープシーケンスとして認識されます。

于 2011-11-04T18:06:16.930 に答える
0

ネクロは質問に答えますが、一部の人にも役立つ可能性があります。

msg.IsBodyHtml = true;
AlternateView av = AlternateView.CreateAlternateViewFromString(msg.Body, new System.Net.Mime.ContentType(System.Net.Mime.MediaTypeNames.Text.Html));
av.TransferEncoding = System.Net.Mime.TransferEncoding.SevenBit;
msg.AlternateViews.Add(av);
AlternateView avPlain = AlternateView.CreateAlternateViewFromString(msg.Body, new System.Net.Mime.ContentType(System.Net.Mime.MediaTypeNames.Text.Plain));
avPlain.TransferEncoding = System.Net.Mime.TransferEncoding.SevenBit;
msg.AlternateViews.Add(avPlain); 
于 2016-07-21T07:50:05.947 に答える
0

問題のある行の前の行末にいくつかの文字列スペースを追加することで、機能させることができました。

msg.Append("\n some Message" + "   ");
msg.Append("\n another message");
于 2015-07-20T18:49:08.107 に答える
0

IsBodyHTML を false に設定します。

ms.IsBodyHtml = false;

デフォルトでは false ですが、Outlook が HTML と認識しているため、どこかで true に設定しているようです。

于 2010-10-14T08:36:16.787 に答える
0

これは私のために働いた:

    mail.Body = String.Format(@"Some text here:
A new line here  
And another line here");

2 行目と 3 行目をインデントしないように注意してください。

于 2015-06-04T15:09:51.793 に答える