如何在我的 Angular5 应用程序中发送带附件的电子邮件 (gmail)?

How do i send email(gmail) with attachment within my Angular5 application?

我正在尝试从 Angular5 应用程序发送带有附件的电子邮件。我的应用程序在没有附件的情况下工作正常。我正在调用 gmail api(https://www.googleapis.com/gmail/v1/users/userId/messages/send) and passing to,from,subject,message (base64 encoded)in a FormGroup. Now, i would like to send a file along with the message. I am trying to use https://www.googleapis.com/upload/gmail/v1/users/userId/messages/send?uploadType=multipart 但面临如何将数据发送到 api 调用的困难。Gmail api 文档说输入必须在message/rfc822 格式。我尝试将 .eml 文件发送到 api 调用并检查邮递员中的响应,但我收到错误提示 badcontetn,这可能是因为我刚刚使用了一个示例 .eml 文件,其中内容未编码。我就像被击中了这里不知道如何进一步移动..我如何让它工作?我如何将用户输入的详细信息和附件转换为 .eml 文件?有没有其他方法可以使它工作?

我找不到确切的解决方案,但我找到了解决方法。我没有使用 /upload/gmail/v1/users/userId/messages/send 作为文件附件,而是使用 /gmail/v1/users/userId/messages/send api url,它通常用于没有附件的电子邮件。我发送请求正文的格式是

--foo_bar_baz 内容类型:message/rfc822 至:surimallabharat@gmail.com 主题:测试对象

这是测试文本 --foo_bar_baz 内容类型:img/png 内容处置:附件 文件名="image.png" iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAA+SURBVHjaYvzPgAD/UNlYEUAAmuTYBgAYhIEgJJmboZgtHbaJKNK8TvozM8LIllwagEY4sIFV1UD/3swngMAaGBn/P3kCVApS7ebG8O/f/x07/n/6BFL36/f/37/+//oFZDPKygJtAAggkIb/YINBqqOjGUxNQeqUlf93dIDV/QLpAWtg+P0bqAEggJhA7gaqBtqoqMjg5PR/+vT/SUn/N2z4//Xr/+XL//Pwgu2BWgJUCxBATCAn/fgJEnVx/Q+05NgxkNzp0/9XrPgvJPR/zZr/ZmZQDX /+AE0HCCCQhv9//4D89OQxMMT+a2uDnKGm9v/SJZCrHj36v28fRAPESQABxALEjGBLGRYv/s/H97+oCOQYIIiM/P/ly/9Fi6CO+QMy9A8DA0AAgTQwg4MMaMD/rq7/vr7/WVlBrv/8GeROiAf+ADWAQgXoHIAAAmlg+v+fQVISbMxfhpMngToZhYUZ+PkZwAaDEDgMgQioGCCAGL+iRiSeOIYAgAADAO/XO1xGA79vAAAAAElFTkSuQmCC --foo_bar_baz--

我已将上述正文编码为 base64,并根据需要将 + 替换为 - 并将 / 替换为 _。 它对我来说很好..希望这至少可以暂时解决问题。