nodemailerを設定し、モデル、コントローラ、メーラーの作成を使用しようとしています。私は私の機能が乱れていることを知っていますが、私はtransport.sendmail関数を通してmailModelを送る方法を理解していません。私の最終目標は、メーラーに電子メールを送信するように電話することです。多分私はモンゴースは必要ないでしょうか?NodeJsモジュールのエクスポートと関数
私は自分の目標を説明していないと思います.Nodemailerに割り当てられたmailOptionsを使って1つのスクリプトで作業させることができます。私は関数をエクスポートしたいので、私はちょうどsendMail(userEmail、subject、text)と言うことができます。 mongooseやmongoDBを経由する必要はありません。
//model.js
var mongoose = require('mongoose');
var mailSchema = mongoose.Schema;
var newMailSchema = new mailSchema({
from: '"me" <[email protected]>', // sender address
to: '', // list of receivers
subject: '', // Subject line
text: '', // plain text body
html: '<b></b>' // html body
});
module.exports = mongoose.model(newMailSchema);
//controller.js
'use strict';
const nodemailer = require('nodemailer');
// create reusable transporter object using the default SMTP transport
var transporter = nodemailer.createTransport({
host: 'smtp-mail.outlook.com',
port: 587,
secure: false, // secure:true for port 465, secure:false for port 587
auth: {
user: '[email protected]',
pass: 'password'
}
});
// send mail with defined transport object
var sender = function(){
transporter.sendMail(mailModel, (error, info) => {
if (error) {
return console.log(error);
}
console.log('Message %s sent: %s', info.messageId, info.response);
});
};
exports.sender = sender;
//mailer.js
var sendMail = require('./controller');
var newMailModel = require('./model');
var mailModel = new newMailModel({
from: '"me" <[email protected]>', // sender address
to: '[email protected]', // list of receivers
subject: 'Hi', // Subject line
text: 'Foo', // plain text body
html: '<b>Bar</b>' // html body
});
sendMail.sender(mailModel);
あなたの目標は何ですか? MongoDBから受信者を取得し、その人に電子メールを送信しますか? – Janne
はい、ユーザーが情報を入力してmongoDBに保存すると、情報を取得して電子メールで送信できます。私はsendMail(to、subject、text)をちょうど実行できます。 – rudster
あなたが言及したユーザー - 登録ユーザーですか、またはあなたのアプリケーションを使用しているゲストですか? – chenop