Reputation: 1289
I need to create an outlook calender event from my application where i am using express js but i am getting an error as [Error:No transport method defined] and after sometime the responde is 200 success after some 1189989 ms
But in outlook i couldn't able to see any event
so here is what i tried
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);
}
});};
Here is the index.js where the routing is done
'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;
I dont understand where i am going wrong
Any help would be highly appreciated..
Upvotes: 1
Views: 1514
Reputation: 5376
You have add transportMethod
into smtpOptions as the below:
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"
});
If you have a domain, you can register a MailGun account. Otherwise, you can use Gmail SMTP
Upvotes: 1