Mandrill 附件:带有 node.js 的附件中的日历事件文件为空

问题描述

我正在尝试使用 node.js 中的以下代码创建 ics 文件并将其附加到 mandrill 电子邮件

收到的电子邮件有附件,但附加的 ics 文件是空的。 我在 node.js 中使用 "ical-generator"

我已经把来自不同线程的代码放在了下面,但没有解决。 有人可以帮我吗?

这是我的代码

const ical = require("ical-generator");
 var options = {
      start: moment(),end: moment().add(1,"hour"),timestamp: moment(),summary: "My Event",title: "Annual function",description: "Lets enjoy and relax",id: "wdcwe76234e127eugb",organiser: { name: "Name",email: "address@gmail.com" },location: "School",};

    const cal = ical({
      name: "My test calendar event",});
    cal.domain("mytestwebsite.com");

      var options = {
          start: moment(),};


    cal.createEvent({
      start: new Date(options.start),end: new Date(options.end),summary: options.summary || options.subject,description: options.description || "",location: options.location,organizer: {
        name: options.organiser.name,email: options.organiser.email,},method: "REQUEST",});
 

    var message = {
          html: emailBody,subject: "test",from_email: "from email",from_name: "name",to: [
            {
              email: "email address",],tags: ["test"],attachments: [
                {
                  type: "text/calendar",name: "fileName.ics",content: cal.toString("base64"),// converting to base64 also not working
    // new Buffer.alloc(15,cal.toString()),// this also not working 
                },};
        var async = false;
        var ip_pool = "Main Pool";
        var send_at = moment().format("YYYY-MM-DD HH:mm:ss");
        mandrill_client.messages.send(
          { message: message,async: async,ip_pool: ip_pool,send_at: send_at },resolve,reject
        );
      });

解决方法

cal 是否已经是缓冲区? 尝试更改内容:cal.toString("base64")Buffer.from(cal).toString("base64")