错误:未定义传输方法
我需要从我的应用程序创build一个Outlook日历事件,我正在使用快速js,但我得到一个错误,因为[错误:没有传输方法定义],并在某些1189989毫秒后,responde是200成功
但在outlook中,我无法看到任何事件
所以这是我的尝试
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;
我不明白我哪里错了
任何帮助将不胜感激..
您已经将transportMethod
添加到smtpOptions中,如下所示:
var nodemailer = require('nodemailer'); var smtpTransport = require('nodemailer-smtp-transport'); var transporter = nodemailer.createTransport(smtpTransport( { from: "no-reply@example.com", host: "smtp.mail.com", secureConnection: true, port: 465, transportMethod: "SMTP", auth: { user: "mail.user@mail.com", pass: "userpass" } } )); transporter.sendMail({ from: "email from", to: data.to, subject: "test", html: "test email" });
如果你有一个域名,你可以注册一个MailGun账户。 否则,您可以使用Gmail SMTP
- 如何访问server.js文件之外的应用程序?
- 如何处理来自app.js的Express 4 / nodejs中的get / post从窗体传递数据到显示结果的新页面
- 我如何使用简单的Express应用程序使用Node.js群集?
- 如何使用Typescript构buildAngular2 + NodeJs + Express应用程序
- Android Volley:POST请求 – NodeJS REST API中的req.body为空
- 如何使用Seneca和Express发送响应
- Express.js试图用variables设置express.static
- JWTauthentication使用$ http.get而不是使用$ http.post
- 如何使用Node.js在Express应用程序中列出所有path,如Rails应用程序中的“rake routes”命令?