2017-09-18 2 views
2

J'utilise "aws-sdk": "^ 2.117.0", mon code ressemble à ceci:Pourquoi est-ce que je ne peux pas envoyer des emails via amazon ses sur Node?

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

Mais je reçois cette erreur:

TypeError: this.makeRequest est pas fonction à svc. (fonction anonyme) (/Users/iagowp/Desktop/trampos/frutacor/node_modules/aws-sdk/lib/service.js:499:23)

Je ne trouve pas d'exemples de nœud à leur site Web, mais d'après ce que j'ai vu ailleurs (comme here), il semble correct. Qu'est-ce que je fais mal?

Répondre

1

Le problème principal est dans la ligne 5 et c'est toujours une bonne idée d'ajouter la fonction de rappel pour les erreurs de journalisation et les demandes réussies.

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

Merci beaucoup, mais seriez-vous en mesure d'expliquer pourquoi cette ligne me manque? Quoi qu'il en soit, c'était vraiment mon problème, maintenant je reçois un message d'erreur plus utile avec lequel je peux travailler (besoin de définir la région) – iagowp

+0

Une fois que vous avez défini la région, cela devrait fonctionner comme un charme. – mostafazh

+1

J'aimerais que vous nous expliquiez pourquoi la ligne 5 était fausse. Cela a fonctionné, merci – iagowp