2017-09-18 2 views
2

Ich verwende "aws-sdk": "^ 2.117.0", sieht mein Code wie folgt aus:Warum kann ich keine E-Mails über Amazon auf Knoten senden?

var AWS = require('aws-sdk'); 
exports.sendAWSMail = function(message, destination){ 
    const ses = new AWS.SES(); 
    // http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html#sendEmail-property 
    const sendEmail = ses.sendEmail; 
    var data = { 
    Destination: { 
    ToAddresses: [ 
     "[email protected]" 
    ] 
    }, 
    Message: { 
    Body: { 
     Html: { 
     Charset: "UTF-8", 
     Data: "This message body contains HTML formatting. It can, for example, contain links like this one: <a class=\"ulink\" href=\"http://docs.aws.amazon.com/ses/latest/DeveloperGuide\" target=\"_blank\">Amazon SES Developer Guide</a>." 
     }, 
     Text: { 
     Charset: "UTF-8", 
     Data: "This is the message body in text format." 
     } 
    }, 
    Subject: { 
     Charset: "UTF-8", 
     Data: "Test email" 
    } 
    }, 
    Source: "[email protected]", 
    } 
    sendEmail(data) 
} 

Aber ich bekomme diese Fehlermeldung:

Typeerror: this.makeRequest ist kein Funktion bei svc. (anonyme Funktion) (/Users/iagowp/Desktop/trampos/frutacor/node_modules/aws-sdk/lib/service.js:499:23)

ich nicht an einem beliebigen Knoten Beispiele gefunden ihre Website, aber von dem, was ich an anderer Stelle gesehen habe (wie here), sieht es richtig aus. Was mache ich falsch?

Antwort

1

Das Hauptproblem ist in Zeile # 5 und es ist immer eine gute Idee, die Callback-Funktion für die Protokollierung von Fehlern und erfolgreichen Anfragen hinzuzufügen.

var AWS = require('aws-sdk'); 
exports.sendAWSMail = function(message, destination){ 
    const ses = new AWS.SES(); 
    var data = { 
    Destination: { 
    ToAddresses: [ 
     "[email protected]" 
    ] 
    }, 
    Message: { 
    Body: { 
     Html: { 
     Charset: "UTF-8", 
     Data: "This message body contains HTML formatting. It can, for example, contain links like this one: <a class=\"ulink\" href=\"http://docs.aws.amazon.com/ses/latest/DeveloperGuide\" target=\"_blank\">Amazon SES Developer Guide</a>." 
     }, 
     Text: { 
     Charset: "UTF-8", 
     Data: "This is the message body in text format." 
     } 
    }, 
    Subject: { 
     Charset: "UTF-8", 
     Data: "Test email" 
    } 
    }, 
    Source: "[email protected]", 
    } 
    ses.sendEmail(data, function(err, data) { 
    if (err) console.log(err, err.stack); // an error occurred 
    else  console.log(data);   // successful response 
    }); 
} 
+0

Vielen Dank, aber würden Sie in der Lage sein zu erklären, warum diese Linie mir fehlt? Wie auch immer, das war wirklich mein Problem, jetzt bekomme ich eine hilfreichere Fehlermeldung, mit der ich arbeiten kann (muss Region einstellen) – iagowp

+0

Sobald Sie die Region festlegen, sollte es wie ein Charme funktionieren. – mostafazh

+1

Ich würde mich freuen, wenn Sie den Grund, warum Zeile 5 falsch war, ausgearbeitet haben. Es hat funktioniert, danke – iagowp

Verwandte Themen