2016-08-08 11 views
0

iCalToolkit을 사용하여 iCalToolkit을 사용하여 캘린더 개체를 만드는 데 Outlook 캘린더 이벤트를 설정해야합니다. 전송 방법이 정의되어 있지 않습니다. 캘린더 이벤트

여기에 오류가 발생했습니다. [No transport method defined] 제대로 작동하기까지 며칠이지만 오늘 오류가 표시되기 시작했습니다. 나는 문제

var _ = require('lodash'); 
var Outlook = require('./outlook.model'); 

exports.sendMsg = function(req, res) { 
    console.log("this is outlook ctrl" + req.query.dateOfInterview); 
    var icalToolkit = require('ical-toolkit'); 
    var postmark = require("postmark"); 

    // Example request 
    var client = new postmark.Client("key"); 
    //var postmark = require('postmark'); 
    //var client = new postmark.Client('xxxxxxxKeyxxxxxxxxxxxx'); 
    var nodemailer = require('nodemailer'); 
    var smtpTransport = require('nodemailer-smtp-transport'); 
    console.log(req.query); 
    //Create a iCal object 
    var builder = icalToolkit.createIcsFileBuilder(); 
    builder.method = 'REQUEST'; 
    //Name of calander 'X-WR-CALNAME' tag. 
    builder.calname = 'Yo Cal'; 
    builder.events.push({ 

     //Event start time, Required: type Date() 
     start: new Date(), 

     //Event end time, Required: type Date() 
     end: new Date(req.query.dateOfInterview), 
     //Event summary, Required: type String 
     summary: 'Scheduled interview For ' + req.query.name, 


     //All Optionals Below 

     //Alarms, array in minutes 
     alarms: [120, 60] 
    }); 
    //builder.method = meeting.method; 
    //Add the event data 

    var icsFileContent = builder.toString(); 
    var smtpOptions = { 
     "host": "smtp.postmarkapp.com", 
     "port": 25, 
     "secureConnection": true, 
     "auth": { 
      user: 'username', 
      pass: 'password' 
     } 
    }; 

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

    var mailOptions = { 
     from: '******', 
     to: req.query.tpMail, 
     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); 
     } 
     res.end(); 
    }); 
}; 

어떤 도움을 주시면 감사하겠습니다에게 이해 해달라고 명시 프레임 워크 을 사용하고 있습니다.

답변

0

내 코드는 모든 올바른 문제는 여기가 0.7.1이었다 전에 nodemailer 버전 이었고, 지금은 2.4.2로 변경하고 다음 nodemailer 버전을 변경하려는 경우가 을했다 :

1) nodemailernode_modules에서 삭제하고 npm을 다시 실행하십시오.

또는

2) npm remove nodemailer npm install nodemailer2.4.2 --save