[解決済み] Outlookが改行を自動削除し、メールフォーマットを台無しにする
2022-08-05 12:22:32
質問
dotnetフレームワークを使用して電子メールを送信しています。以下は、メッセージを作成するために使用しているテンプレートです。
Date of Hire: %HireDate%
Annual Salary: %AnnualIncome%
Reason for Request: %ReasonForRequest%
Name of Voluntary Employee: %FirstName% %LastName%
Total Coverage Applied For: %EECoverageAmount%
Guaranteed Coverage Portion: %GICoveragePortion%
Amount Subject to Medical Evident: %GIOverage%
outlook でメッセージを受信すると、outlook が "このメッセージの余分な改行は削除されました" と表示します。そして、メッセージはこのように表示されます。
Date of Hire: 9/28/2001
Annual Salary: $100,000
Reason for Request: New Hire
Name of Voluntary Employee: Ronald Weasley Total Coverage Applied For: $500,000 Guaranteed Coverage Portion: $300,000.00 Amount Subject to Medical Evident: $200,000
Outlook が名前、EECoverageAmount などの後にある必要な改行を誤って削除していることに注意してください...
電子メールの受信者にとって、正しくフォーマットされた電子メールを受け取ることは重要であり、受信者の何人かは outlook 2003 を使用していると想定しなければなりません。また、メッセージを適切にフォーマットするために自動クリーニング機能を停止するほどの知識があるとは思えません。
これらのメッセージを他のメール クライアントで表示したところ、正しく表示されました。
より多くの情報を得ることができます。
- UTF-8 BodyEncodingを使用しています(msg.BodyEncoding = System.Text.Encoding.UTF8)
- msg.Body は UTF-8 でエンコードされたテキストファイルから読み込まれ、各行の終端は crlf で終了します。
質問です。 この問題を回避するために、メッセージのフォーマットを変更するにはどうしたらよいでしょうか。
どのように解決するのですか?
すべての行を2つのスペースで始めると、outlookはあなたの書式を維持するように"tricked"されます。
そこで、次のように変更します。
Date of Hire: %HireDate%
Annual Salary: %AnnualIncome%
Reason for Request: %ReasonForRequest%
Name of Voluntary Employee: %FirstName% %LastName%
Total Coverage Applied For: %EECoverageAmount%
Guaranteed Coverage Portion: %GICoveragePortion%
Amount Subject to Medical Evident: %GIOverage%
から
Date of Hire: %HireDate%
Annual Salary: %AnnualIncome%
Reason for Request: %ReasonForRequest%
Name of Voluntary Employee: %FirstName% %LastName%
Total Coverage Applied For: %EECoverageAmount%
Guaranteed Coverage Portion: %GICoveragePortion%
Amount Subject to Medical Evident: %GIOverage%
^^ <--- Two extra spaces at the start of every line
ここでは 記事 この問題を調査しているときに見つけたもので、私の答えよりももう少し深く掘り下げています。
関連
-
[解決済み] WCF エラーの解決。このサービスのメタデータパブリッシングは現在無効になっています。
-
[解決済み] C++/CLIにおけるキャレット('^')の意味は?
-
[解決済み] Microsoft.NETFrameworkとMicrosoft.NETFramework64の違いは何ですか?
-
[解決済み] 到達不能なホストに対してソケット操作を行おうとした
-
[解決済み] PythonでOutlookのメールを送る?
-
[解決済み] 文字列から数字を抽出する正規表現
-
[解決済み] app.configが作成されるタイミングとapp.exe.configが作成されるタイミング、その違いとは?
-
[解決済み] .NETにおけるstructとclassの違いは何ですか?
-
[解決済み] System.Timers.Timer vs System.Threading.Timer
-
[解決済み] 文字列の改行を置き換える C#
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] ファイルまたはアセンブリ 'System.Data.SQLite' をロードできませんでした。
-
[解決済み] .Netの配列のLongLengthの目的は何ですか?
-
[解決済み] WinSCP 応答待ちタイムアウト
-
[解決済み] "SSL/TLSセキュアチャネルの信頼関係を当局と確立できませんでした "の解決方法
-
[解決済み] Powershell v3 Invoke-WebRequest HTTPSエラー
-
[解決済み] .NET Coreと.NET Standard Class Libraryのプロジェクトタイプの違いは何ですか?
-
[解決済み] .NETにおけるstructとclassの違いは何ですか?
-
[解決済み] Visual Studioの「Any CPU」ターゲットはどういう意味ですか?
-
[解決済み] HashSetとListの性能比較
-
[解決済み] WCF - メッセージサイズのクォータを増加させる方法