我正在努力學習更多關于原始電子郵件的知識,為此我用Go寫了一些代碼,幫助我建立一個帶有附件和HTML正文的電子郵件。
但是我有一個問題,目前我只能發送一個附件(不能使用多個附件)或一個HTML正文。而當我試圖發送一個HTML 1個附件時,我收到的是一個內容為空的檔案,而且沒有名字
。所以,我不知道我的原始郵件有什么問題,如果有人能幫助我,我真的很感激。
下面是生成的原始郵件,如果有人能幫助我了解它的問題所在。
From: FooBar
To: [email protected]
主題。隨機文本
MIME-Version: 1.0。
Content-Type: multipart/mixed; boundary="VH5S0k0C2sKbOiiC0CQW0H0gdwo0A00wLHuY0Knk0dzaTr5y55VB0O5UqN0D5ARY"/span>
--VH5S0k0C2sKbOiiC0CQW0H0gdwo0A00wLHuY0Knk0dzaTr5y55VB0O5UqN0D5ARY
Content-Type: multipart/alternative; boundary="WMaSWQ0Q205bd0Ly000W5p00N5ohAMoUpXu050nC0d0a0r0y050B0O0UkN0D0ARY"/span>
--WMaSWQ0Q205bd0Ly000W5p00N5ohAMoUpXu050nC0d0a0r0y050B0O0UkN0D0ARY
要看到這個訊息,請使用支持forHTML的應用程式。
--WMaSWQ0Q205bd0Ly000W5p00N5ohAMoUpXu050nC0d0a0r0y050B0O0UkN0D0ARY
Content-Type: text/html; charset="UTF-8"。
內容-描述。
Content-Disposition: inline
Content-Transfer-Encoding: 7bit
<h1>你的隨機文本是:</h1><b>JU0NZU4ODAX</b>。
--WMaSWQ0Q205bd0Ly000W5p00N5ohAMoUpXu050nC0d0a0r0y050B0O0UkN0D0ARY--
Content-Type: multipart/alternative; boundary="hcx0dnS50VSCeMb5mSyM05W00yQT0odL7050u0XMn5UdUa0rdy050B0OgUjNDARY" /span>
--hcx0dnS50VSCeMb5mSyM05W00yQT0odL7050u0XMn5UdUa0rdy050B0OgUjNDARY
一個包含一些資訊的檔案
--hcx0dnS50VSCeMb5mSyM05W00yQT0odL7050u0XMn5UdUa0rdy050B0OgUjNDARY
Content-Type: text/plain; charset="utf-8"。
Content-Description: random-text.txt
Content-Disposition: attachment; filename=" random-text.txt";
Content-Transfer-Encoding: base64
Content-ID: <random-text.txt>
SlUwTlpVNE9EQVg=
--hcx0dnS50VSCeMb5mSyM05W00yQT0odL7050u0XMn5UdUa0rdy050B0OgUjNDARY--
Content-Type: multipart/alternative; boundary="0PZiT5S5IpaWM5bEOA0Uw5W0000TDo5X0y50u00Ln50dIa7r0yS50B5O5UZNDARY"/span>
--0PZiT5S5IpaWM5bEOA0Uw5W0000TDo5X0y50u00Ln50dIa7r0yS50B5O5UZNDARY
一個包含一些資訊的檔案
--0PZiT5S5IpaWM5bEOA0Uw5W0000TDo5X0y50u00Ln50dIa7r0yS50B5O5UZNDARY
Content-Type: text/plain; charset="utf-8"。
Content-Description: no-matter.txt
Content-Disposition: attachment; filename="no-matter.txt";
Content-Transfer-Encoding: base64
Content-ID: <no-matter.txt>
w4kgQklSTCBNRVNNTw==
--0PZiT5S5IpaWM5bEOA0Uw5W0000TDo5X0y50u00Ln50dIa7r0yS50B5O5UZNDARY--
--VH5S0k0C2sKbOiiC0CQW0H0gdwo0A00wLHuY0Knk0dzaTr5y55VB0O5UqN0D5ARY--
uj5u.com熱心網友回復:
在不了解你的期望的情況下,很難看出這里有什么問題;但是為每個附件設定multipart/alternative肯定是相當可疑的。你基本上是在說 "這里有兩個相等的部分;使用你喜歡的任何一個",但是沒有任何標題的部分(隱含的text/plain)似乎不能提供與明確的文本部分相同的內容或終端用戶體驗。
明顯而直接的問題是,在最后兩個multipart/alternative部分之前,你沒有MIME邊界。你需要在頁眉之前有一個MIME邊界,就像這樣:
...
<h1>你的隨機文本是:</h1><b>JU0NZU4ODAX</b>。
--WMaSWQ0Q205bd0Ly000W5p00N5ohAMoUpXu050nC0d0a0r0y050B0O0UkN0D0ARY--
--VH5S0k0C2sKbOiiC0CQW0H0gdwo0A00wLHuY0Knk0dzaTr5y55VB0O5UqN0D5ARY
Content-Type: multipart/alternative; boundary="hcx0dnS50VSCeMb5mSyM05W00yQT0odL7050u0XMn5UdUa0rdy050B0OgUjNDARY"
--hcx0dnS50VSCeMb5mSyM05W00yQT0odL7050u0XMn5UdUa0rdy050B0OgUjNDARY
一個包含一些資訊的檔案
...
但是我猜想你應該只是洗掉最后兩個結構中的multipart/alternative層,最后得到一個頂級的multipart/mixed,包含一個multipart/alternative(有text/plain和text/html渲染。或者干脆省略無用的text/plain部分,反正這對每個人來說都是煩人的,而只是把一個text/html部分代替multipart/alternative結構,如果這確實是你能有效地提供的),后面是兩個text/plain部分,帶有Content-Disposition: attachment。
作為一個旁觀者,不要在例子中使用你不知道它們屬于誰的地址(更不用說你知道屬于無辜的第三方的地址)。
From: FooBar
致:[email protected]
主題。隨機文本
MIME-Version: 1.0。
Content-Type: multipart/mixed; boundary="VH5S0k0C2sKbOiiC0CQW0H0gdwo0A00wLHuY0Knk0dzaTr5y55VB0O5UqN0D5ARY"/span>
--VH5S0k0C2sKbOiiC0CQW0H0gdwo0A00wLHuY0Knk0dzaTr5y55VB0O5UqN0D5ARY
Content-Type: multipart/alternative; boundary="WMaSWQ0Q205bd0Ly000W5p00N5ohAMoUpXu050nC0d0a0r0y050B0O0UkN0D0ARY"/span>
--WMaSWQ0Q205bd0Ly000W5p00N5ohAMoUpXu050nC0d0a0r0y050B0O0UkN0D0ARY
我們認為顯示一個惱人的建議會很有幫助
在HTML瀏覽器中查看,而不是為你提供
而不是向你提供只在HTML部分可見的資訊。
吶喊,吶喊。
--WMaSWQ0Q205bd0Ly000W5p00N5ohAMoUpXu050nC0d0a0r0y050B0O0UkN0D0ARY
Content-Type: text/html; charset="UTF-8"。
Content-Description: (如果你沒有描述,不要添加這個頭)
Content-Disposition: inline
Content-Transfer-Encoding: 7bit
<h1>你的隨機文本是:</h1><b>JU0NZU4ODAX</b>。
--WMaSWQ0Q205bd0Ly000W5p00N5ohAMoUpXu050nC0d0a0r0y050B0O0UkN0D0ARY--
--VH5S0k0C2sKbOiiC0CQW0H0gdwo0A00wLHuY0Knk0dzaTr5y55VB0O5UqN0D5ARY
Content-Type: text/plain; charset="utf-8"。
Content-Description: random-text.txt
Content-Disposition: attachment; filename=" random-text.txt";
Content-Transfer-Encoding: base64
Content-ID: <random-text.txt>
SlUwTlpVNE9EQVg=
--VH5S0k0C2sKbOiiC0CQW0H0gdwo0A00wLHuY0Knk0dzaTr5y55VB0O5UqN0D5ARY
Content-Type: text/plain; charset="utf-8"。
Content-Description: no-matter.txt
Content-Disposition: attachment; filename="no-matter.txt";
Content-Transfer-Encoding: base64
Content-ID: <no-matter.txt>
w4kgQklSTCBNRVNNTw==
--VH5S0k0C2sKbOiiC0CQW0H0gdwo0A00wLHuY0Knk0dzaTr5y55VB0O5UqN0D5ARY--
uj5u.com熱心網友回復:
你可以嘗試使用這個https://github.com/jordan-wright/email來生成一個具有相同內容和附件的.eml檔案,然后與你的檔案進行比較,找出差異。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/313424.html
標籤:
