环回无法在电子邮件中发送动态值

问题描述 投票:0回答:1

我有一个联系表单,我可以使用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文件。

javascript email loopbackjs strongloop nodemailer
1个回答
0
投票

您可以通过传输数据的上下文对象访问模型实例。你可以在这里阅读更多信息: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); 
 }); 
});
© www.soinside.com 2019 - 2024. All rights reserved.