环回无法通过电子邮件发送动态值

时间:2019-04-01 06:54:47

标签: javascript email loopbackjs strongloop nodemailer

我有一个联系表,可以在其中使用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: 'lakshmipriya.l@company.com', 
    from: 'lakshmipriya.l@gmail.com', 
    subject: 'my subject', 
    text: 'my text', 
    html: 'my <em>html</em>' 
    }, function(err, mail) { 
    console.log('email sent!'); 
    cb(err); 
    }); 
    }); 

};

如何发送具有动态值的电子邮件,谁能告诉我如何获取contact.json值并将其发送到contact.js文件。

1 个答案:

答案 0 :(得分:0)

您可以通过传输数据的上下文对象访问模型实例。您可以在这里阅读更多内容:https://loopback.io/doc/en/lb2/Remote-hooks.html#ctxresult

因此,将电子邮件发送给已创建的联系人:

Contact.app.models.Email.send({ 
 to: context.result.email, 
 from: 'lakshmipriya.l@gmail.com', 
 subject: 'my subject', 
 text: 'my text', 
 html: 'my <em>html</em>' 
}, function(err, mail) { 
 console.log('email sent!'); 
 cb(err); 
 }); 
});