我的应用中有一个电子邮件功能。所以我添加了\ t \ tt,以便在第一个日期和值之间有一个标签空格。这在设备中看起来也很好。但是当收到电子邮件时,字符串之间只有一个空格,而且没有标签。因此,数据不会出现在列中,而是出现锯齿状。是否有任何方法可以在收到的电子邮件中实现相同的外观?如何在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();
编辑: - 我也在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();
答案 0 :(得分: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|
+------------+-------+-------+-------+-------+
但是,电子邮件客户端必须使用Monospace font正确读取此表,否则表格边框和数据将“流动”。