2016-04-07 6 views
1

Mit Parse-Server 2.2.6, wie würde man den SimpleMailgunAdapter in Cloud-Code verwenden?Verwendung bereits initialisierten Mailadapters in Parse-Server CloudCode

ich initialisieren meine parseserver wie folgt aus:

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: '[email protected]', 
     apiKey: process.env.MAILGUN_API_KEY, 
     domain: process.env.MAILGUN_DOMAIN 
    } 
    } 
}); 

Dies funktioniert (also die Überprüfung von E-Mails gesendet zu werden)

Jetzt habe ich E-Mails von Cloud-Code gesendet werden soll, ohne dass eine neue SimpleMailgunAdapter zu schaffen.

Was heute verwende ich:

var SimpleMailgunAdapter = require('parse-server-simple-mailgun-adapter'); 

    var adapter = SimpleMailgunAdapter({ 
    apiKey: process.env.MAILGUN_API_KEY, 
    domain: process.env.MAILGUN_DOMAIN, 
    fromAddress: '[email protected]' 
    }) 

Diese Arbeit ist. Aber ich denke, der beste Weg wäre, den bereits initialisierten Mail-Adapter von meiner Parse-Instanz zu holen. Aber ich weiß nicht, wie ich das machen soll. Wäre das eine Best Practice, oder kann ich bei meiner Lösung bleiben?

Antwort

2

Sie können mailgun verwenden, um E-Mails aus Ihrem Cloud-Code zu senden.

Zuerst müssen Sie die NPM-Modul installieren [https://www.npmjs.com/package/mailgun-js]

mit diesem Befehl:

npm mailgun-js --save

aktualisieren Sie den Server (Im mit AWS elasticbeanstalk) installieren

dann auf main.js Datei initialisieren mailgun von

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

dann erstellen Sie eine Cloud-Code-Funktion

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