如何使用nodemailer正确发送会议请求?

bip*_*lav 5 email icalendar node.js nodemailer

我正在尝试使用以下代码通过 nodemailer 发送会议请求。我面临的问题是会议邀请作为附件 ics 文件而不是可以直接添加的请求。我已经在多个邮件客户端上尝试过了。任何指示将不胜感激。

transport.sendMail({
                    from: 'BakBak.io <biplav.saraf@gmail.com>',
                    to: 'biplav.saraf@gmail.com',
                    subject: 'Meeting',
                    //html: "Hi",
                    text: "Hola!!",
                    alternative: {
                      contentType: "text/calendar; method=REQUEST; name='meeting.ics';component=VEVENT",
                      contents: new Buffer(cal.toString()),
                      contentEncoding:"7bit",
                      "Content-Class":"urn:content-classes:calendarmessage"
                    },
                    headers: {
                              "Content-Type": "text/calendar", 
                              //"charset":"utf-8",
                              "method":"REQUEST",
                              "component":"VEVENT",
                              "Content-Class":"urn:content-classes:calendarmessage"
                            }//,
                    //attachments : [{filename:'invite.ics',contents: cal.toString()}]
                    }, function(err, responseStatus) {
                    if (err) {
                        console.log(err);
                        res.render('schedule',{errors: err.message});
                    } else {
                        console.log(responseStatus.message);
                        res.render('schedule',{success_msg: "Successfully Created!"});
                    }
                });
Run Code Online (Sandbox Code Playgroud)

bip*_*lav 2

如果发件人和收件人相同,Gmail 不会显示会议请求,也不会提供添加到日历的选项。

这对我有用:

transport.sendMail({
                    from: 'BakBak.io <biplav.saraf@gmail.com>',
                    to: 'donateoldspectacles@gmail.com',
                    subject: 'Meeting',
                    html: "Hiya!!",
                    text: "Hola!!",
                    alternatives: [{
                      contentType: "text/calendar",
                      content: new Buffer(ical)
                    }]
                    }, function(err, responseStatus) {
                    if (err) {
                        console.log(err);
                        res.render('schedule',{errors: err.message});
                    } else {
                        console.log(responseStatus.message);
                        res.render('schedule',{success_msg: "Successfully Created!"});
                    }
                });
Run Code Online (Sandbox Code Playgroud)