1

アプリにメール機能があります。だから私は最初の日付と値の間にタブ付きスペースがあるように \t\t を追加しました。これは、デバイスでも問題なく表示されます。しかし、電子メールを受信すると、文字列の間にスペースが 1 つだけあり、タブはありません。したがって、データは列に表示されず、ギザギザになります。受信した電子メールで同じ外観を実現できる方法はありますか? でテキストをフォーマットするにはどうすればよいEmailComposeTaskですか?

string test = "";
strheading = "heading";
for (int j = 0; j < pCycMan.GetWeightCount(); j++)
{
    test= test+ pCycMan.GetWeightDateByIndex(j).ToString("dd-MMM-yyyy") + "\t\t" + pCycMan.GetWeightByIndex(j) + "\n";
}
var emailComposeTask = new EmailComposeTask
{
    To = "emailid",
    Subject = "tezt",
};
emailComposeTask.Body = strheading + test;
emailComposeTask.Show();

EDIT :- for ループ内で次のコードを試しましたが、機能しませんでした。

string temp2 =pCycMan.GetWeightByIndex(j);
StringBuilder sb = new StringBuilder(pCycMan.GetWeightDateByIndex(j).ToString("dd-MMM-yyyy"));
sb.Append("\t");
sb.Append(temp2);
sb.AppendLine();
weight = weight + sb.ToString();
4

1 に答える 1

2

たとえば、ブラウザで電子メールを見ている場合、標準の空白はブラウザによって無視されるため、すべて壊れる可能性があります。そのため、生の電子メール データを調べて、送信したタブが本当に欠落していることを確認する必要があります。たとえば、Mozilla Thunderbird では、 を押しCtrl+Uて未加工のメッセージ データを表示します。Gmail では、返信ボタンの近くにある下矢印をクリックし、Show originalオプションを選択します。

テキストを視覚的にフォーマットしたい場合は、テーブルのようなデータをフォーマットするために HTML テーブルを使用することをお勧めします。「Content-Type: text/html」を指定し、データ付きのhtmlドキュメントを作成します(encodindは正しく指定する必要があることに注意してください)。

コンテンツ タイプを使用したい、または使用しなければならない場合はtext/plain、次のようにスペースを使用してテーブル データの書式を設定する方が安全です。

+------------+-------+-------+-------+-------+
| Date       | Load  | Quota | Warn  | Err   |
+------------+-------+-------+-------+-------+
| 2012-08-23 |   0.37|     5%|      0|      0|
| 2012-08-22 |   0.45|     5%|      0|      0|
| 2012-08-21 |   0.30|     5%|      0|      0|
+------------+-------+-------+-------+-------+

それでも、電子メール クライアントは、この表を正しく読み取るためにモノスペース フォントを使用する必要があります。そうしないと、表の境界線とデータが「流れて」しまいます。

于 2012-09-04T07:58:18.777 に答える