【问题标题】:Using already initialised mailadapter in Parse server CloudCode在 Parse 服务器 CloudCode 中使用已初始化的邮件适配器
【发布时间】:2016-04-07 23:03:21
【问题描述】:

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

我像这样初始化我的解析服务器:

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
    }
  }
});

这是有效的(即正在发送验证电子邮件)

现在我想从云代码发送电子邮件,而不创建新的 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'
  })

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

【问题讨论】:

    标签: node.js parse-platform parse-cloud-code mailgun parse-server


    【解决方案1】:

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

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

    通过使用此命令:

    npm install mailgun-js --save

    然后更新您的服务器(我使用 AWS elasticbeanstalk)

    然后在你的 main.js 文件中,通过

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

    然后创建云代码函数

        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!");
            }
        });
    });
    

    【讨论】:

      猜你喜欢
      • 2012-11-25
      • 1970-01-01
      • 2023-03-18
      • 2018-12-13
      • 2011-07-08
      • 2013-09-09
      • 1970-01-01
      • 2013-01-28
      • 1970-01-01
      相关资源
      最近更新 更多