2016-07-09 3 views
1

Мне нужно создать событие календаря outlook из моего приложения, где я использую экспресс-js, но я получаю сообщение об ошибке как [Ошибка: не указан какой-либо транспортный метод] , а после ответа на вопрос 200 после некоторых 1189989 мсОшибка: не определен какой-либо транспортный метод

Но в перспективе я не мог в состоянии видеть любое событие

так вот что я пытался

var _ = require('lodash'); 
var Outlook = require('./outlook.model'); 
var icalToolkit = require('ical-toolkit'); 
var nodemailer = require('nodemailer'); 
var smtpTransport = require('nodemailer-smtp-transport'); 
//Create a iCal object 
var builder = icalToolkit.createIcsFileBuilder(); 
var icsFileContent = builder.toString(); 
var smtpOptions = { 
"secureConnection": true, 
"from": "*****", 
"host": "smtp-mail.outlook.com", 
"secureConnection": true, 
"port": 587, 
"transportMethod": "SMTP", 
"auth": { 
    user: '******', 
    pass: '*****' 
}}; 
var builder = icalToolkit.createIcsFileBuilder(); 
builder.events.push({ 
start: new Date(), 
end: new Date(), 
    }); 
var transporter = nodemailer.createTransport(smtpTransport(smtpOptions)); 
var mailOptions = { 
from: '******', 
to: '******', 
subject: 'Meeting to attend', 
html: "Anything here", 
text: "hiiiiiiiiiiiiiiiiii", 
alternatives: [{ 
    contentType: 'text/calendar; charset="utf-8"; method=REQUEST', 
    content: icsFileContent.toString() 
}]}; 
//send mail with defined transport object 
exports.send = function(req, res) { 
transporter.sendMail(mailOptions, function(error, info) { 
    if (error) { 
     console.log(error); 
    } else { 
     console.log('Message sent: ' + info.response); 
    } 
});}; 

Вот это index.js, где делается маршрутизация

'use strict'; 

var express = require('express'); 
var controller = require('./outlook.controller');  
var router = express.Router(); 
router.get('/', controller.index); 
router.get('/send', controller.send);  

router.get('/:id', controller.show); 
router.post('/', controller.create); 
router.put('/:id', controller.update); 
router.patch('/:id', controller.update); 
router.delete('/:id', controller.destroy); 
module.exports = router; 

Я не понимаю, где я буду неправильно

Любая помощь будет высоко ценится ..

+0

Какую версию «nodemailer» и «nodemailer-smtp-transport» вы используете? –

+0

У меня есть npm, установленный для того, чтобы я сделал, как npm install nodemailer и npm install nodemailer-smtp-transport –

ответ

1

Вы должны добавить transportMethod в smtpOptions как ниже:

var nodemailer = require('nodemailer'); 
var smtpTransport = require('nodemailer-smtp-transport'); 
var transporter = nodemailer.createTransport(smtpTransport(
{ 
     from: "[email protected]", 
     host: "smtp.mail.com", 
     secureConnection: true, 
     port: 465, 
     transportMethod: "SMTP", 
     auth: { 
      user: "[email protected]", 
      pass: "userpass" 
     } 
    } 
)); 

transporter.sendMail({ 
      from: "email from", 
      to: data.to, 
      subject: "test", 
      html: "test email" 
}); 

Если у вас есть домена, вы можете зарегистрировать учетную запись MailGun. В противном случае вы можете использовать Gmail SMTP

+0

Его снова то же самое :( –

+1

Это не должно быть необходимо, потому что 'nodemailer-smtp-transport' используется напрямую. –

+0

Я предполагаю Мне нужно добавить службу там, например, я видел какой-то другой код, в котором люди добавили сервис: «Gmail», но я не понимаю, что нужно добавить для внешнего обзора –

Смежные вопросы