在reactjs中使用gmail api发送带有纯文本、附件和html的电子邮件

杨诚

我目前正在尝试使用 reactjs 中的 gmail api 发送由 3 个组件组成的电子邮件:纯文本、附件和 html。现在使用我的代码发送电子邮件,我只能接收附件和 html。下面是我用来发送电子邮件的代码:

    for (i=0; i<email.attachment.length; i++) {
        let content = email.attachment[i].data.split(",")[1];
        let attachment = ['--012boundary01\r\n',
                         'Content-Type: ' + email.attachment[i].type + '\r\n',
                         'MIME-Version: 1.0\r\n',
                         'Content-Transfer-Encoding: base64\r\n',
                         'Content-Disposition: attachment; filename=' + email.attachment[i].name + '\r\n\r\n',
                          content, '\r\n\r\n'].join('');
        console.log(attachment)
        attachments += attachment
     };

     let mail = [
        'Content-Type: multipart/mixed; boundary="012boundary01"\r\n',
        'MIME-Version: 1.0\r\n',
        'To: ' + email.to + '\r\n',
        'Subject: ' + email.subject + '\r\n\r\n',
        '--012boundary01\r\n',
        'Content-Type: multipart/alternative; boundary=012boundary02\r\n\r\n',
        '--012boundary02\r\n',
        'Content-Type: text/plain; charset=UTF-8\r\n\r\n',
        email.body + '\r\n\r\n',
        '--012boundary02\r\n',
        'Content-Type: text/html; charset=UTF-8\r\n',
        'Content-Transfer-Encoding: quoted-printable\r\n\r\n',
        '<h1>HELLO</h1>\r\n\r\n',
        '--012boundary02--\r\n',

        attachments,

        '--012boundary01--'
     ].join('');

content 变量是我的附件的 base64 编码字符串。

最终的邮件变量将如下所示:

Content-Type: multipart/mixed; boundary="012boundary01"

MIME-Version: 1.0

To: [email protected]

Subject: test again

--012boundary01
Content-Type: multipart/alternative; boundary=012boundary02

--012boundary02
Content-Type: text/plain; charset=UTF-8

testing123

--012boundary02

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

Content-Transfer-Encoding: quoted-printable

<h1>HELLO</h1>

--012boundary02--

--012boundary01

Content-Type: image/jpeg

MIME-Version: 1.0

Content-Transfer-Encoding: base64

Content-Disposition: attachment; filename=1x1_red_pixel.jpeg

(base64 encoded string here)
拉法·吉列尔莫

回答:

你的纯文本 发送,但邮件应用程序能够显示HTML,所以你看不到它。

更多信息:

电子邮件的纯文本部分显示在无法显示更复杂内容(在您的情况下为 HTML)的电子邮件客户端中

如果您转到 Gmail 用户界面并查看原始邮件,然后按照邮件⋮ > Show original右上角的 ,您将看到您的纯文本在邮件中应有的样子。

由于您也有 HTML,因此可以显示 HTML 的电子邮件客户端将显示它而不是纯文本,而不是在它旁边显示。

您的代码运行良好,如果您想查看纯文本,您需要使用非 HTML 显示客户端,或从消息中删除 HTML。

我希望这对你有帮助!

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

通过 Gmail API 发送带有内嵌图像和纯文本内容的电子邮件

通过Gmail API发送带有纯文本后备格式的HTML电子邮件

如何在Node.js中使用Gmail API发送带有附件的电子邮件?

如何使用 Google Apps Script 和 Mailchimp API 发送带有附件的交易电子邮件

使用gmail rest api -objective-c发送带有附件的电子邮件

使用Java Gmail API发送带有多个(大型)附件的电子邮件

GMAIL API使用C#发送带有附件的电子邮件

Rails:使用带有附件的Gmail API发送电子邮件,仅返回编码文件

在php中使用gmail api发送带有附件的邮件

使用Maven发送带有附件的电子邮件

使用Java for Automation发送带有附件的电子邮件

使用SendGrid发送带有附件的电子邮件

使用wordpress发送带有附件的电子邮件

使用 powershell 发送带有内嵌附件的电子邮件

使用smpt发送带有多个附件的电子邮件

使用Python发送带有附件的电子邮件

无法使用 nodemailer 发送带有附件的电子邮件

使用带有 ajax 和 Django python 的 JsPDF 发送 PDF 附件电子邮件

如何使用JavaMail发送带有附件的HTML电子邮件

使用Python发送带有HTML + plain_text电子邮件的PDF附件

Android应用程序使用Java Mail API发送带有附件的电子邮件

如何在Android上使用gmail客户端API发送带有大型附件的电子邮件

使用带有HTML正文和电子邮件附件的imaplib在python 3.7中阅读电子邮件

使用 appscript 在 Gmail 中批量发送带有相应附件的电子邮件

如何使用具有HTML内容和图像作为附件的客户端gmail API发送电子邮件

如何在ASP.NET Core Web API中使用MimeMessage发送带有附件的电子邮件?

在Java中使用Gmail API发送电子邮件

使用gmail php API发送带有HTML内容的电子邮件以及所有样式

使用回送电子邮件数据源发送带有附件的电子邮件