Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 新行电子邮件小数点翻了一倍_C#_Email_Html Email - Fatal编程技术网

C# 新行电子邮件小数点翻了一倍

C# 新行电子邮件小数点翻了一倍,c#,email,html-email,C#,Email,Html Email,当我使用.NETSystem.NET.Mail.MailMessage类发送HTML电子邮件(实际上只是生成.eml文件,而不是现在发送)时,它似乎在给我的一些数字添加小数点 当数字在新行上拆分时,只需添加额外的小数点,新行上的第一个字符将是一个点 输入: [snip]27.50[snip]137.50[snip] 输出: [snip]27.= 50[snip]= [snip]137= ..50[snip] 在Outlook中打开时,第一个数字输出为27.00,但第二个(可以理解)输出为13

当我使用.NET
System.NET.Mail.MailMessage
类发送HTML电子邮件(实际上只是生成.eml文件,而不是现在发送)时,它似乎在给我的一些数字添加小数点

当数字在新行上拆分时,只需添加额外的小数点,新行上的第一个字符将是一个点

输入:

[snip]27.50[snip]137.50[snip]
输出:

[snip]27.=
50[snip]=
[snip]137=
..50[snip]
在Outlook中打开时,第一个数字输出为
27.00
,但第二个(可以理解)输出为
137..50
(小数点太多!)

我知道平等是一种“软线断裂”。额外的
是否有语法

为什么它输出2个点?我能阻止它这样做吗

非剪切输出:

<tr>=0D=0A          <td>=
Units</td><td>Standard Rate</td><td></td><td>25.00</td><td>27.=
50</td><td>25.00</td><td>625.00</td><td>687.50</td>=0D=0A       </tr><=
tr>=0D=0A           <td>Timesheet Units</td><td>Standard Rate</td><td></t=
d><td>25.00</td><td>27.50</td><td>5.00</td><td>125.00</td><td>137=
..50</td>=0D=0A     </tr>
=0D=0A=
单位标准费率25.0027=
5025.00625.00687.50=0D=0A=0D=0A时间表单位标准费率25.0027.505.00125.00137=
..50=0D=0A

我怀疑您只是遇到了这样一个事实:行开头的句点用于终止邮件

根据第4.5.2节:

4.5.2透明度

在没有数据透明性的情况下,字符序列 “.”结束邮件文本,用户无法发送。 一般来说,用户不知道这样的“禁止”序列。到 允许透明地传输所有用户编写的文本 使用以下程序:

  • 在发送一行邮件文本之前,SMTP客户端将检查 行的第一个字符。如果是一个周期,则另加一个周期 句点插入行的开头
  • 当SMTP服务器收到一行邮件文本时,它会进行检查 排队。如果该行由单个周期组成,则为 视为邮件结束指示器。如果第一个字符是 句号,行中还有其他字符,第一个 字符被删除

换句话说,我怀疑当邮件实际发送时,接收者只会看到一个点。不清楚Outlook为什么会在这里做错误的事情…

如果我的回答没有帮助,请提供有关如何生成电子邮件的详细信息。听起来这可能是解决方案。现在正在做一个测试!谢谢,这是正确的行为,但我认为应该在协议级别(POP3)完成,而不是存储在文件中。把它放进文件看起来像是一场等待发生的事故(在本例中是Outlook)。@david.pfx:同意。目前还不完全清楚OP是如何生成文件的——如果OP是以通过SMTP发送而不是直接存储在电子邮件文件中的方式生成文件的,那么肯定可以解释这一点。是的,我是使用
deliveryMethod=“SpecifiedPickupDirectory”生成的
所以它是要发送的。如果您总是想将其保存到本地文件,您可以查看并使用MimeKit.MimeMessage的便利方法将System.Net.Mail.MailMessage转换为MimeKit.MimeMessage,然后以这种方式将其保存到文件中。这样,您就不会遇到SMTP“字节填充”问题。希望有帮助。