【发布时间】:2018-11-11 08:04:51
【问题描述】:
问题
所有数据都以文本格式发送,而不是作为附件的 PDF。
我的代码
var boundary = "__myapp__", nl = "\n";
// var attach = data.toString("base64");
var fileName = "abc.pdf";
var attach = new Buffer(fs.readFileSync("./" + fileName)).toString("base64");
var str = ["Content-Type: text/plain; charset=\"UTF-8\"\n",
"MIME-Version: 1.0\n",
"Content-Transfer-Encoding: 7bit\n",
"to: ", to, "\n",
"subject: ", subject, "\n\n",
"Content-Type: multipart/alternate; boundary=" + boundary + nl,
"--" + boundary,
"Content-Type: text/plain; charset=UTF-8",
"Content-Transfer-Encoding: 7bit" + nl,
message + nl,
"--" + boundary,
"--" + boundary,
"Content-Type: Application/pdf; name=myPdf.pdf",
'Content-Disposition: attachment; filename=myPdf.pdf',
"Content-Transfer-Encoding: base64" + nl,
attach,
"--" + boundary + "--"
].join('');
var encodedMail = new Buffer(str).toString("base64")
.replace(/\+/g, '-')
.replace(/\//g, '_');
resolve(encodedMail);
部分邮件如下
内容类型:多部分/替代;边界=myapp --_myapp_Content-Type:文本/纯文本; charset=UTF-8Content-Transfer-Encoding: 7bit 测试信息 --myapp--_myapp_Content-Type:应用程序/pdf; name=myPdf.pdfContent-Disposition:附件; 文件名=myPdf.pdf 内容传输编码:base64 JVBERi0xLjMgCiXi48 / TIAoxIDAgb2JqIAo8PCAKL1R5cGUgL0NhdGFsb2cgCi9QYWdlcyAyIDAgUiAKL1BhZ2VNb2RlIC9Vc2VOb25lIAovVmlld2VyUHJlZmVyZW5jZXMgPDwgCi9GaXRXaW5kb3cgdHJ1ZSAKL1BhZ2VMYXlvdXQgL1NpbmdsZVBhZ2UgCi9Ob25GdWxsU2NyZWVuUGFnZU1vZGUgL1VzZU5vbmUgCj4 +佑+ PiAKZW5kb2JqIAo1IDAgb2JqIAo8PCAKL0xlbmd0aCAyNjQzIAovRmlsdGVyIFsgL0ZsYXRlRGVjb2RlIF0gCj4 + IApzdHJlYW0KeJzdGWtT48jxu3 + FMYMkY8uep2bGkgADBrwseHntLYv3kspe9iqpbFK5fMjfT89LkuUH3H5J1UEVNZru6e7pdw94hEUXw2 + K3UpxMpLdr9872G7 / 9qtf3F92JMVdynGXYJ7xLsmY4N3f / tr5qfPPDu2 + A7Z / WhSSZRUO1YQYnIcOHilFu82 /// lq0RlhxKMLjA3yX + X + pqp91tyXZPO + wiLsU9HYJzzDFQPpAUIL6gT97tZWin + AnFKxzH199 + ssQIywTBkAIURx92EgVBEWQG4dznCc ...更多 文本...最后...==--myapp--
我认为发送带有附件的邮件的模板可能存在问题。
谁能在这里提供帮助?
谢谢
【问题讨论】:
-
您似乎缺少一个 mimeType 属性来指定文件的类型为 application/pdf。按照 Gmail 中的Uploading Attachments 指南了解步骤。
-
@noogui 您可以在上面的代码中找到,我已将内容类型指定为 Application/pdf
-
这些信息对您的情况有用吗? stackoverflow.com/questions/50540051/…
-
@Tanaike 感谢您的帮助。我的实际问题是我忘记放置的对齐和新行。
-
感谢您的回复。很高兴您的问题得到了解决。
标签: javascript node.js gmail-api