問題是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