为了账号安全,请及时绑定邮箱和手机立即绑定

带有多个附件的 SMTP 邮件哑剧 + 网页

带有多个附件的 SMTP 邮件哑剧 + 网页

Go
慕标5832272 2022-09-26 20:23:19
我正在尝试对原始电子邮件进行更多研究,为此,我在Go中编写了一些代码,帮助我构建带有附件和HTML正文的电子邮件。但是我有一个问题,目前我只能发送一个附件(不适用于多个附件)或HTML正文。当我尝试发送HTML + 1附件时,我收到一个内容为空且无名的文件所以,我不知道我的原始电子邮件有什么问题,如果有人可以帮助我,我真的很感激。以下是生成的Raw电子邮件,如果有人可以帮助我了解它的问题所在。From: FooBarTo: some@mail.comSubject: Random TextMIME-Version: 1.0Content-Type: multipart/mixed; boundary="VH5S0k0C2sKbOiiC0CQW0H0gdwo0A00wLHuY0Knk0dzaTr5y55VB0O5UqN0D5ARY"--VH5S0k0C2sKbOiiC0CQW0H0gdwo0A00wLHuY0Knk0dzaTr5y55VB0O5UqN0D5ARYContent-Type: multipart/alternative; boundary="WMaSWQ0Q205bd0Ly000W5p00N5ohAMoUpXu050nC0d0a0r0y050B0O0UkN0D0ARY"--WMaSWQ0Q205bd0Ly000W5p00N5ohAMoUpXu050nC0d0a0r0y050B0O0UkN0D0ARYTo see this message, use an app with support for HTML.--WMaSWQ0Q205bd0Ly000W5p00N5ohAMoUpXu050nC0d0a0r0y050B0O0UkN0D0ARYContent-Type: text/html; charset="UTF-8"Content-Description: Content-Disposition: inlineContent-Transfer-Encoding: 7bit<h1>Your random text is: </h1><b>JU0NZU4ODAX</b>--WMaSWQ0Q205bd0Ly000W5p00N5ohAMoUpXu050nC0d0a0r0y050B0O0UkN0D0ARY--Content-Type: multipart/alternative; boundary="hcx0dnS50VSCeMb5mSyM05W00yQT0odL7050u0XMn5UdUa0rdy050B0OgUjNDARY"--hcx0dnS50VSCeMb5mSyM05W00yQT0odL7050u0XMn5UdUa0rdy050B0OgUjNDARYA file containing some information--hcx0dnS50VSCeMb5mSyM05W00yQT0odL7050u0XMn5UdUa0rdy050B0OgUjNDARYContent-Type: text/plain; charset="utf-8"Content-Description: random-text.txtContent-Disposition: attachment; filename="random-text.txt";Content-Transfer-Encoding: base64Content-ID: <random-text.txt>SlUwTlpVNE9EQVg=--hcx0dnS50VSCeMb5mSyM05W00yQT0odL7050u0XMn5UdUa0rdy050B0OgUjNDARY--Content-Type: multipart/alternative; boundary="0PZiT5S5IpaWM5bEOA0Uw5W0000TDo5X0y50u00Ln50dIa7r0yS50B5O5UZNDARY"--0PZiT5S5IpaWM5bEOA0Uw5W0000TDo5X0y50u00Ln50dIa7r0yS50B5O5UZNDARYA file containing some information
查看完整描述

2 回答

?
温温酱

TA贡献1752条经验 获得超4个赞

如果不了解你的期望,就很难看出这里出了什么问题。但是对于每个依恋肯定是相当可疑的。你基本上是在说“这里有两个等同的部分;使用你喜欢的任何一个“,但没有任何标题(隐含的)似乎无法提供与显式文本部分相同的内容或最终用户体验。multipart/alternativetext/plain


显而易见且直接的问题是,在最后两个部分之前,您没有 MIME 边界。您需要在标头之前具有紧挨着的 MIME 边界,如下所示:multipart/alternative


...

<h1>Your random text is: </h1><b>JU0NZU4ODAX</b>


--WMaSWQ0Q205bd0Ly000W5p00N5ohAMoUpXu050nC0d0a0r0y050B0O0UkN0D0ARY--

--VH5S0k0C2sKbOiiC0CQW0H0gdwo0A00wLHuY0Knk0dzaTr5y55VB0O5UqN0D5ARY

Content-Type: multipart/alternative; boundary="hcx0dnS50VSCeMb5mSyM05W00yQT0odL7050u0XMn5UdUa0rdy050B0OgUjNDARY"


--hcx0dnS50VSCeMb5mSyM05W00yQT0odL7050u0XMn5UdUa0rdy050B0OgUjNDARY


A file containing some information

...

但是我猜你应该只是删除最后两个结构中的图层,并最终得到一个包含一个(带有和渲染的顶层,或者可能只是省略无用的部分,这无论如何都会让每个人都很烦恼,如果确实是你可以提供的全部,那么只需放置一个部分而不是结构,然后是两个部分。multipart/alternativemultipart/mixedmultipart/alternativetext/plaintext/htmltext/plaintext/htmlmultipart/alternativetext/plainContent-Disposition: attachment


顺便说一句,不要在示例中使用您不知道他们属于谁的地址(更不用说您知道属于无辜第三方的地址了)。


From: FooBar

To: some@example.com

Subject: Random Text

MIME-Version: 1.0

Content-Type: multipart/mixed; boundary="VH5S0k0C2sKbOiiC0CQW0H0gdwo0A00wLHuY0Knk0dzaTr5y55VB0O5UqN0D5ARY"


--VH5S0k0C2sKbOiiC0CQW0H0gdwo0A00wLHuY0Knk0dzaTr5y55VB0O5UqN0D5ARY

Content-Type: multipart/alternative; boundary="WMaSWQ0Q205bd0Ly000W5p00N5ohAMoUpXu050nC0d0a0r0y050B0O0UkN0D0ARY"


--WMaSWQ0Q205bd0Ly000W5p00N5ohAMoUpXu050nC0d0a0r0y050B0O0UkN0D0ARY


We thought it would be helpful to display an annoying suggestion

to look at this in an HTML viewer instead of provide you with

the information which is only visible in the HTML part.

Nyah, nyah.


--WMaSWQ0Q205bd0Ly000W5p00N5ohAMoUpXu050nC0d0a0r0y050B0O0UkN0D0ARY

Content-Type: text/html; charset="UTF-8"

Content-Description: (if you don't have a description, don't add this header)

Content-Disposition: inline

Content-Transfer-Encoding: 7bit


<h1>Your random text is: </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--


查看完整回答
反对 回复 2022-09-26
?
Cats萌萌

TA贡献1805条经验 获得超9个赞

您可以尝试使用此 https://github.com/jordan-wright/email 生成具有相同内容和附件的.eml文件,然后将其与您的文件进行比较以找出差异。


查看完整回答
反对 回复 2022-09-26
  • 2 回答
  • 0 关注
  • 116 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号