Я использую стек Mean.js, и у меня возникают проблемы с выяснением того, как отправлять электронные письма с помощью пакета nodemailer из внутри контроллера AngularJS. У меня есть следующий код:
var mailOptions = {
from: 'Hello <[email protected]>',
to: '[email protected]',
subject: 'email subject',
text: 'email body',
html: 'html body'
};
var smtpTransport = nodemailer.createTransport(config.mailer.options);
smtpTransport.sendMail(mailOptions, function(err) {
if (!err) {
res.send({
message: 'Email has been sent'
});
}
done(err);
});
Но получаю ошибку ReferenceError: nodemailer is not defined
. Я попытался внедрить зависимость в контроллер, используя:
angular.module('offers').controller('OffersController', ['$scope', '$stateParams', '$location', 'Authentication', 'Offers', 'nodemailer',
function($scope, $stateParams, $location, Authentication, Offers, nodemailer) {
...
но я получаю только ошибку Unknown provider: nodemailerProvider
. Я также добавил зависимость к app/config/express.js как таковую nodemailer = require('nodemailer')
, но все равно не повезло.
Я вижу в пакете npm nodemailer/src/nodemailer.js следующие строки:
function Nodemailer(transporter) {
...
а также
module.exports.createTransport = function(transporter)
...
поэтому я бы предположил, что могу получить доступ к пакету через глобальный объект Nodemailer, например: Nodemailer.createTransport(...)
, но это также не определено.
Спасибо за вашу помощь!