javascript - 是否可以使用 nodeJS 创建 outlook 的 session 请求?

标签 javascript node.js email calendar outlook

我正在使用 Angular 和 Node 开发一个非常基本的日历,但我还没有找到任何代码。

工作流程如下:创建一个事件,输入收件人的电子邮件地址,验证事件。 这会触发发送给收件人的电子邮件。邮件应采用 outlook session 请求格式(不是附加对象)。

这意味着当在 Outlook 中收到 session 时,该 session 会自动添加到日历中。

这可能吗?如果是,是否可以在 Node 端仅使用 javascript?

最佳答案

对于那些仍在寻找答案的人,以下是我如何设法为我找到完美的解决方案。 我使用 iCalToolkit 创建了一个日历对象。

确保所有相关字段都已设置(组织者和与会者 RSVP)很重要。

最初我使用 Postmark API 服务来发送我的电子邮件,但这个解决方案只能通过发送 ics.file 附件来工作。

我切换到 Postmark SMTP 服务,您可以在其中将 iCal 数据嵌入邮件中,为此我使用了 nodemailer。

这是它的样子:

        var icalToolkit = require('ical-toolkit');
        var postmark = require('postmark');
        var client = new postmark.Client('xxxxxxxKeyxxxxxxxxxxxx');
        var nodemailer = require('nodemailer');
        var smtpTransport = require('nodemailer-smtp-transport');

        //Create a iCal object
        var builder = icalToolkit.createIcsFileBuilder();
        builder.method = meeting.method;
        //Add the event data

        var icsFileContent = builder.toString();
        var smtpOptions = {
            host:'smtp.postmarkapp.com',
            port: 2525,
            secureConnection: true,
            auth:{
               user:'xxxxxxxKeyxxxxxxxxxxxx',
               pass:'xxxxxxxPassxxxxxxxxxxx'
            }
        };

        var transporter = nodemailer.createTransport(smtpTransport(smtpOptions));

        var mailOptions = {
            from: 'message@domain.com',
            to: meeting.events[0].attendees[i].email,
            subject: 'Meeting to attend',
            html: "Anything here",
            text: "Anything here",
            alternatives: [{
              contentType: 'text/calendar; charset="utf-8"; method=REQUEST',
              content: icsFileContent.toString()
            }]
        };

        //send mail with defined transport object 
        transporter.sendMail(mailOptions, function(error, info){
            if(error){
                console.log(error);
            }
            else{
                console.log('Message sent: ' + info.response);  
            }
        });

这会发送一个带有接受、拒绝和拒绝按钮的真实 session 请求。

为了实现如此微不足道的功能而需要完成的工作量以及所有这些都没有得到很好的记录,真是令人难以置信。 希望这会有所帮助。

关于javascript - 是否可以使用 nodeJS 创建 outlook 的 session 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31082000/

相关文章:

node.js - NodeJS服务器每小时获取时间戳

java - playframework java 异步方法调用

java - 邮件 header 中 Unicode 字符的翻译

javascript - 如果启用了无限滚动,如何防止剑道网格两次加载数据?

javascript - 在全局范围内查找 JavaScript 函数

javascript - 当我将 jquery 添加到我的网站时,我的 JS 不起作用

ruby-on-rails - 希望从我的服务器(后缀)发送到我域中的电子邮件地址的电子邮件被传送到谷歌应用程序

javascript - node.js + 请求 => node.js + bluebird + 请求

javascript - Node Js sequelize 原始查询更改为经纬度的 ORM

node.js - 如何修复和防止 mongodb 中的重复键错误