在Parse服务器CloudCode中使用已经初始化的mailadapter

使用parse-server 2.2.6,如何在云代码中使用SimpleMailgunAdapter?

我像这样初始化我的parseserver:

var api = new ParseServer({ databaseURI: databaseUri, cloud: process.env.CLOUD_CODE_MAIN, appId: process.env.APP_ID || 'myAppId', masterKey: process.env.MASTER_KEY || '', //Add your master key here. Keep it secret! serverURL: process.env.SERVER_URL, // Don't forget to change to https if needed appName: 'AppName', publicServerURL: process.env.SERVER_URL, verifyUserEmails: true, emailAdapter: { module: 'parse-server-simple-mailgun-adapter', options: { fromAddress: 'mymail@mail.com', apiKey: process.env.MAILGUN_API_KEY, domain: process.env.MAILGUN_DOMAIN } } }); 

这是工作(即validation电子邮件正在发送)

现在我想从云代码发送电子邮件,而不创build一个新的SimpleMailgunAdapter。

我今天使用的是:

 var SimpleMailgunAdapter = require('parse-server-simple-mailgun-adapter'); var adapter = SimpleMailgunAdapter({ apiKey: process.env.MAILGUN_API_KEY, domain: process.env.MAILGUN_DOMAIN, fromAddress: 'mymail@email.com' }) 

这是工作。 但是我觉得最好的办法是从我的分析实例中获取已经初始化的邮件适配器。 但我不知道该怎么做。 这会被认为是最佳做法,还是我坚持我的解决scheme?

您可以使用mailgun从您的云代码发送电子邮件。

首先你需要安装npm模块[ https://www.npmjs.com/package/mailgun-js%5D

通过使用这个命令:

npm安装mailgun-js –save

然后更新您的服务器(使用AWS elasticbeanstalk即时通讯)

然后在你的main.js文件中,初始化mailgun

 var mailgun = require('mailgun-js')({apiKey: 'XXX', domain: 'XXX.com'}); 

然后创build一个云代码function

  Parse.Cloud.define("sendEmail", function(request, response) { console.log("sendEmail " + new Date()); var emailBody = request.params.emailBody; var emailSubject = request.params.emailSubject; var fromName = request.params.fromName; var fromEmail = request.params.fromEmail; var toEmail = request.params.toEmail; var toName = request.params.toName; var fromString = fromName + " <"+fromEmail+">"; var toString = toName + " <"+toEmail+">" console.log("emailBody " + emailBody); console.log("emailSubject " + emailSubject); console.log("fromName " + fromName); console.log("fromEmail " + fromEmail); console.log("toEmail " + toEmail); console.log("toName " + toName); var data = { from: fromString, to: toString, subject: emailSubject, html: emailBody }; mailgun.messages().send(data, function (error, body) { if (error) { console.log("got an error in sendEmail: " + error); response.error(err); }else { console.log("email sent to " + toEmail + " " + new Date()); response.success("Email sent!"); } }); });