问题是HTML与电子邮件不兼容。这就是为什么我创建Mail Markup Language。
HTML被创建为与HTTP协议一起运行,因为这两种技术大约在同一时间由同一个人发明。不同之处在于HTTP是从服务器到客户端的单一会话单向传输。这从来没有改变,因为HTML文档始终始于服务器,发送到请求客户端,并且一旦传输完成,客户端和服务器之间的连接就会被丢弃。
电子邮件不会以这种方式表现。在电子邮件中,通信始于客户端,发送到一个或多个电子邮件服务器,然后终止于远程客户端。然而,最大的区别在于,文档不会像单个HTTP传输文档一样终止单个传输实例。以SMTP发送的文档可以被回复,转发或复制到多个未请求的用户。考虑电子邮件线程时,这一点是深刻的。
问题是,SMTP和HTTP不同,如前面两段中所示。这种差异是复杂的,因为SMTP和HTTP具有完全不同的用于创建标题数据的格式化方法。 HTML具有标头数据,旨在与HTTP传输的标头兼容,并且不符合SMTP传输。 HTML标头也没有考虑电子邮件线程的复杂性。
当电子邮件软件破坏HTML文档以添加必要的格式更改以适应该软件的符合要求并将标题数据直接写入文档时,可以举例说明该问题。当HTML电子邮件成为电子邮件线程时,这种例证变得非常明显。由于HTML标题数据没有方法说明电子邮件线程的复杂性,因此无法从样式表中提供相关的表示定义,这些表示定义在传输文档时仍然存在。每次将HTML文档或具有HTML格式的文档从一个电子邮件软件发送到另一个电子邮件软件时,该文档都会损坏,并且每个电子邮件软件设备都会破坏先前的损坏。电子邮件处理软件可能会引用电子邮件客户端,这肯定会损坏文档或电子邮件服务器,这可能只会损坏电子邮件文档。
问题的解决方案是创建标记语言约定,直接识别电子邮件标题数据的要求。这些要求在RFC 5321中为SMTP协议定义,RFC 5322在客户端处理中定义。正确扩展此解决方案以解决电子邮件线程复杂性的唯一方法是为多代理DOM提供约定。
段落由于技术上的不准确而被删除,并且在术语多代理DOM和在编辑之前未提及的发明特征的性质之间存在差异。
编辑:多代理DOM应用某种程度的层次结构,这可能不需要表示电子邮件线程。
“(即完全相同的源消息HTML可能会或可能不会导致过渡扰)” 但是当他们造成过渡,其中邮件提供商你通常得到这个问题扰? Hotmail的? Gmail或任何其他?或者收件邮件是什么都没有关系? –
我见过所有电子邮件提供商的问题。似乎并不特定于目标用户的提供者。 –
什么是编码?尝试base64,即使没有附件。这应该保持良好状态。 – dusoft