如何在使用AWS SES和Lambda发送的电子邮件的HTML正文中添加外部CSS?

问题描述

我正在使用diff2Html npm库在我的lambda函数生成两个json(当前经过硬编码)之间的差异,如下所示:

const Diff2html = require('diff2html');
const Diff = require('diff');
var gitDiff = require('git-diff')
const AWS = require("aws-sdk");



exports.handler = async (event) => {
    let json1 = getJSON1();
    let json2 = getJSON2();
    
    var diff = Diff.createTwoFilesPatch("file","file",JSON.stringify(json1,undefined,4),JSON.stringify(json2,4));
    
    
    const diffHtml = Diff2html.html(diff,{ drawFileList: true,outputFormat: "side-by-side"});
    
    const finalHTML = `<!DOCTYPE html>
    <html>
    <body>
    <!-- CSS -->
    <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/diff2html/bundles/css/diff2html.min.css" />
    
    <!-- Javascripts -->
    <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/diff2html/bundles/js/diff2html.min.js"></script>
    ` +diffHtml+`
    </body>
    </html>`
    

        
var rawMailBody = "From: xyz@xyz.com\n";
  rawMailBody = rawMailBody + "To: xyz@xyz.com\n";
  rawMailBody = rawMailBody + "Subject: Test Diff Mail 3\n";
  rawMailBody = rawMailBody + ``
  rawMailBody = rawMailBody + "MIME-Version: 1.0\n";
  rawMailBody = rawMailBody + "Content-Type: multipart/mixed; boundary=\"NextPart\"\n\n";
  rawMailBody = rawMailBody + "--NextPart\n";
  rawMailBody = rawMailBody + "Content-Type: text/html;\n";
  rawMailBody = rawMailBody + "\n";        
const ses = new AWS.SES({ apiVersion: "2010-12-01" });
const params = {
  
  RawMessage: {
    
        Data: rawMailBody + finalHTML
      
    
  },Destinations: ["xyz@xyz.com"],Source: "xyz@xyz.com"
};

const sendEmail = await ses.sendRawEmail(params).promise();

console.log(sendEmail)        

sendEmail
  .then(data => {
    console.log("email submitted to SES",data);
  })
  .catch(error => {
    console.log(error);
  });
  console.log("Done....")        
  //return response;

} 

css 没有被应用到我的HTML正文。有没有一种方法可以将样式表添加到电子邮件正文中?还是SES不支持外部CSS?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)