Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/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
在Golang中附加文件并通过SMTP发送时无正文部分的电子邮件_Go_Smtp_Email Attachments_Mime - Fatal编程技术网

在Golang中附加文件并通过SMTP发送时无正文部分的电子邮件

在Golang中附加文件并通过SMTP发送时无正文部分的电子邮件,go,smtp,email-attachments,mime,Go,Smtp,Email Attachments,Mime,我正在尝试发送一封包含电子邮件正文和Go(Golang)中的文件附件(CSV文件)的电子邮件 我遵循多部分消息的mime标准,但是我对遵循该标准的消息结构不是很熟悉。我模模糊糊地跟着一位同事的一段Python代码片段,作为使用Python库email(我想这是标准库中的代码)的指南,例如MIMEText和MIMEMultipart 执行以下Go代码时,电子邮件正文未显示: 怎么了 我如何发送包含该文件附件和电子邮件正文的电子邮件 此函数应返回一个字节片,用作从Go标准库调用smtp.Send

我正在尝试发送一封包含电子邮件正文和Go(Golang)中的文件附件(CSV文件)的电子邮件

我遵循多部分消息的
mime
标准,但是我对遵循该标准的消息结构不是很熟悉。我模模糊糊地跟着一位同事的一段Python代码片段,作为使用Python库
email
(我想这是标准库中的代码)的指南,例如
MIMEText
MIMEMultipart

执行以下Go代码时,电子邮件正文未显示:

  • 怎么了
  • 我如何发送包含该文件附件和电子邮件正文的电子邮件
此函数应返回一个字节片,用作从Go标准库调用
smtp.SendMail
的参数。请参阅下面的注释,解释接收到的电子邮件消息发生了什么情况(该
不会显示[…]
,该
也不会显示[…]


巧合的是,前几天我也遇到了类似的问题。我需要在body内容类型和body本身的开头之间留一个空行。以下是您代码中此部分的更新行:

    mime.WriteString("Content-Type: text/plain; charset=utf-8\r\n")
    mime.WriteString("\r\nThis should be the email message body (v2)...")
为清楚起见,此换行符(\r\n)不必正好位于此处,它可以附加到上面的内容类型行。它只需要在内容类型和正文开头之间看到一个空行


我假设附件没有问题,对吗?我的假设是,这是因为在添加附件数据之前,您在内容处置行的末尾有一个双新行。

这似乎是不必要的手动操作-您是否查看了或流行的第三方?我使用的是来自Go标准库的
net/smtp
,这些文档中说明了这一点net/smtp包是低级机制,不支持DKIM签名、MIME附件(请参阅MIME/multipart包)或其他邮件功能“.另外:我正试图避免使用第三方库来将事情最小化,而不必处理依赖关系管理。该库当前未维护,此fork被维护:
    mime.WriteString("Content-Type: text/plain; charset=utf-8\r\n")
    mime.WriteString("\r\nThis should be the email message body (v2)...")