将base64上载为附件Javascript MIME

将base64上载为附件Javascript MIME,javascript,smtp,mime,amazon-ses,Javascript,Smtp,Mime,Amazon Ses,场景是,我有一个按顺序执行以下操作的脚本: 生成base64二维码的脚本 向用户发送带有base64二维码的电子邮件的脚本 这里的问题是,当我试图用嵌入电子邮件(使用MIME)时,我可以在Outlook中查看它,但无法在Gmail中查看它 我可以想到的另一种选择是将base64作为电子邮件的附件附加,然后在电子邮件正文中显示它。然而,由于某些原因,电子邮件中的附件似乎已损坏,因为我无法打开它 我一直在密切关注以下链接来构建我的MIME 如果你对我的情况有更好的看法,一定要让我知道 下面的qrC

场景是,我有一个按顺序执行以下操作的脚本:

  • 生成base64二维码的脚本
  • 向用户发送带有base64二维码的电子邮件的脚本
  • 这里的问题是,当我试图用
    嵌入电子邮件(使用MIME)时,我可以在Outlook中查看它,但无法在Gmail中查看它

    我可以想到的另一种选择是将base64作为电子邮件的附件附加,然后在电子邮件正文中显示它。然而,由于某些原因,电子邮件中的附件似乎已损坏,因为我无法打开它

    我一直在密切关注以下链接来构建我的MIME

    如果你对我的情况有更好的看法,一定要让我知道

    下面的qrCode是指QR码图像的base64图像,例如data:image/png:base64,… 电子邮件正文的MIME

    let ses_mail = "From: COMPANY A <" + sender_email + ">\n";
    ses_mail = ses_mail + "To: " + receiver_email + "\n";
    ses_mail = ses_mail + "Subject: " + subjectTitle +  "\n";
    ses_mail = ses_mail + "MIME-Version: 1.0\n";
    ses_mail = ses_mail + "Content-Type: multipart/mixed; boundary=\"NextPart\"\n\n";
    ses_mail = ses_mail + "--NextPart\n";
    ses_mail = ses_mail + "Content-Type: text/html; charset=iso-8859-1\n\n";
    ses_mail = ses_mail + "<html>\n";
    ses_mail = ses_mail + "<body>\n";
    ses_mail = ses_mail + "<h2>Registration Successful</h2>\n";
    ses_mail = ses_mail + "<p>You can retrieve information through the QR Code provided.</p>\n";
    ses_mail = ses_mail + "<img src=\"" + qrCode + "\" alt='image'/>\n";
    ses_mail = ses_mail + "</body>\n";
    ses_mail = ses_mail + "</html>\n\n";
    ses_mail = ses_mail + "--NextPart\n";
    ses_mail = ses_mail + "Content-Type: image/png; name=qrCode.png\n\n";
    ses_mail = ses_mail + "Content-ID: <idname>\n\n";
    ses_mail = ses_mail + "Content-Disposition: attachment; filename=qrCode.png\n";
    ses_mail = ses_mail + "Content-Transfer-Encoding: base64\n\n";
    ses_mail = ses_mail + qrCode.slice(21) + "\n\n";
    ses_mail = ses_mail + "--NextPart--\n\n";
    
    let ses_mail=“From:COMPANY A\n”;
    ses_-mail=ses_-mail+“收件人:”+receiver_-email+“\n”;
    ses_mail=ses_mail+“主题:”+subjectTitle+“\n”;
    ses_mail=ses_mail+“MIME版本:1.0\n”;
    ses\U mail=ses\U mail+“内容类型:多部分/混合;边界=\“下一部分\”\n\n”;
    ses_mail=ses_mail+“--NextPart\n”;
    ses_mail=ses_mail+“内容类型:text/html;字符集=iso-8859-1\n\n”;
    ses_-mail=ses_-mail+“\n”;
    ses_-mail=ses_-mail+“\n”;
    ses\u mail=ses\u mail+“注册成功\n”;
    ses_mail=ses_mail+“您可以通过提供的二维码检索信息。

    \n”; ses_-mail=ses_-mail+“\n”; ses_-mail=ses_-mail+“\n”; ses\u mail=ses\u mail+“\n\n”; ses_mail=ses_mail+“--NextPart\n”; ses_mail=ses_mail+“内容类型:image/png;name=qrCode.png\n\n”; ses\u mail=ses\u mail+“内容ID:\n\n”; ses_mail=ses_mail+“内容配置:附件;文件名=qrCode.png\n”; ses_mail=ses_mail+“内容传输编码:base64\n\n”; ses\u mail=ses\u mail+qrCode.slice(21)+“\n\n”; ses\u mail=ses\u mail+“--NextPart--\n\n”;
    我会将二维码图像存储在我的服务器上,并将其作为
    发送到电子邮件中。你也可以使用一个生成器(或者自己编写)生成一个HTML版本,其中每个QR像素都是一个。我实际上做了一些非常类似的事情,我附加了QR码,一切都很好——所以我会尝试找出图像被破坏的原因,因为它不应该被破坏。可能与您的操作方式有关。由于您使用的是JS,我建议您使用
    node sendmail
    之类的库来创建和发送电子邮件--从头开始编写电子邮件头非常困难、复杂,而且很容易出错,我相信您已经看到了这一点。SES应该为您提供SMTP凭据,因此如果我正确地记住了系统,您应该能够使用那些与node sendmail没有问题的凭据。@Nisala我可以澄清一下,这些凭据与我从脚本中获得的
    数据:image/png:base64,iVBORw0K…
    一致(我可以在浏览器中打开此链接,它会显示二维码),我想把base64放在
    内容传输编码下:base64
    就是
    iVBORw0K…
    对吗?