10


0

MailMessageは、Outlookで改行なしで文字列を本文として送信しました

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

たとえば、元のメッセージは次のようになります。

line1
line 2
line 3

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

line1 line 2 line 3

Outlookのソースを引き続き表示します

line1
line 2
line 3

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

10 Answer


14


Outlookは時々改行を削除することがあります(通常、それを行ったというコメントもポップアップします)、これを行うときのルールについて正確にはわかりませんが、「。」(フルストップ)を追加するかどうかはかなり確信しています各行の終わりでは削除されません。

実際、この記事を見ると、HTMLまたはRTFとしてメールを送信することでも解決できるようです:http://support.microsoft.com/kb/287816[Outlookでプレーンテキスト形式で作成された投稿の改行は削除されます]


3


これは私のために働いた

mMailMessage.IsBodyHtml = true;
Literal1.Text = "Dear Admin,
You have recieved an enquiry onyour Website. Following are the details of enquiry:

Name: " + TextBox2.Text + "
Address: " + TextBox3.Text + ", " + TextBox4.Text + "
Phone: " + TextBox5.Text + "
Email: " + TextBox2.Text + "
Query: " + TextBox6.Text+"
 Regards,
 Veritas Team";
mMailMessage.Body = Literal1.Text;


2


以下のような文字列を持っている

"Your string.\n"

And:

ms.IsBodyHtml = false;

しかし、あなたはあなたのジャンクフォルダにそれを得るかもしれません


2


ブレークHTML

mailMsg.IsBodyHtml = true;
mailMsg.Body = this.Body;
mailMsg.BodyEncoding = System.Text.Encoding.ASCII;
mailMsg.Body = mailMsg.Body.Replace(Environment.NewLine, "
");


1


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

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

文字列MyString + = "this is my text" + "%0d%0A"を使用する必要があります

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


0


IsBodyHTMLをfalseに設定します。

ms.IsBodyHtml = false;

デフォルトではfalseですが、outlookがHTMLであると判断したため、どこかにtrueに設定したように見えます。


0


これは私のために働きました:

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

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


0


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

msg.Append("\n some Message" + "   ");
msg.Append("\n another message");


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);


0


メッセージの前に逐語演算子「 @」を使用してみてください。

message.Body =
@"
line1
line 2
line 3
"

_テキストの左マージンからの距離も、メール本文の左マージンからの実際の距離に影響することを考慮してください。