Я следовал инструкциям. Построение контактной формы. И я добавил уведомление по электронной почте дополнительно. Мой окончательный код выглядит так:
...
// Email default "from" address for this module
email: { from: 'XXX@gmail.com' },
afterConstruct: function(self) {
self.setSubmitSchema();
},
construct: function(self, options) {
// build submit shema
self.setSubmitSchema = function() {
self.submitSchema = self.apos.schemas.subset(self.schema,
[ 'name', 'email', 'title', 'body' ]
);
};
// Submit request to piece
self.submit = function(req, callback) {
var piece = {};
return async.series([
convert,
insert
], callback);
function convert(callback) {
return self.apos.schemas.convert(req, self.schema, 'form', req.body, piece, callback);
}
function insert(callback) {
return self.insert(req, piece, { permissions: false }, callback);
}
};
// Submit request by email
self.afterInsert = function(req, piece, options, callback) {
return self.email(req, 'emailInserted', {
piece: piece
}, {
// can also specify from and other
// valid properties for nodemailer messages here
to: 'XXX@gmail.com',
subject: 'A new suggestion was received'
},
callback
);
};
}
};
Все работает, как и ожидалось, но у меня не может быть данных для входа в smtp для nodemailer в app.js, лежащих в открытом коде. Это моя проблема.
Когда я использую этот код без указания имени пользователя, отправка формы завершается неудачно. Поэтому мне нужно либо написать дополнительно, если условие вызывает self.afterInsert
, только если указан действительный логин.
Или я бы добавил логин process.env.USER_SMTP
, process.env.USER_LOGIN
и process.env.USER_PW
в app.js, если это работает! Но мне все равно придется добавить электронную почту from:
и to:
в contact-form/index.js
. Так что я действительно не знаю, как вежливо решить эту проблему, и я был бы признателен за предложение ...