我有一个联系表单,我可以使用loopback3将数据保存在数据库中。我还需要发送一封电子邮件,所以我已经为这个模块添加了电子邮件连接器,但我只能在邮件中发送静态值。如何获取contact.js文件中的动态值并通过电子邮件发送。
contact.json
{
"name": "contact",
"base": "PersistedModel",
"idInjection": true,
"options": {
"validateUpsert": true
},
"properties": {
"id": {
"type": "number"
},
"name": {
"type": "string",
"required": true
},
"email": {
"type": "string",
"required": true
},
"subject": {
"type": "string",
"required": true
},
"message": {
"type": "string",
"required": true
},
"inserted_date": {
"type": "string"
}
},
"validations": [],
"relations": {},
"acls": [],
"methods": {}
}
contact.js
'use strict';
const app = require('../../server/server');
module.exports = function(Contact) {
Contact.afterRemote('create', function(context, remoteMethodOutput, next) {
next();
Contact.app.models.Email.send({
to: '[email protected]',
from: '[email protected]',
subject: 'my subject',
text: 'my text',
html: 'my <em>html</em>'
}, function(err, mail) {
console.log('email sent!');
cb(err);
});
});
};
如何发送包含动态值的电子邮件,任何人都可以告诉我如何获取contact.json值并发送到contact.js文件。
您可以通过传输数据的上下文对象访问模型实例。你可以在这里阅读更多信息:https://loopback.io/doc/en/lb2/Remote-hooks.html#ctxresult
因此,要将电子邮件发送给已创建的联系人:
Contact.app.models.Email.send({
to: context.result.email,
from: '[email protected]',
subject: 'my subject',
text: 'my text',
html: 'my <em>html</em>'
}, function(err, mail) {
console.log('email sent!');
cb(err);
});
});