Node.js : Отправка электронной почты с помощью AWS SES

#node.js #amazon

#node.js #amazon-веб-сервисы #amazon-ses #aws-sdk-nodejs

Вопрос:

Есть ли стабильный модуль для Amazon SES в Node.js ?

Спасибо

Ответ №1:

Появился новый официальный AWS SDK для Node.js предоставление API для каждой службы. Вы должны попробовать :

http://aws.amazon.com/sdkfornodejs/

Ответ №2:

Вот что у меня сработало (необязательные параметры закомментированы; создано на основе документации AWS JavaScript SDK SES):

 var SES = require('aws-sdk/clients/ses');
var ses = new SES({
  accessKeyId: "MY_ACCESS_KEY_ID",
  secretAccessKey: "MY_SECRET_ACCESS_KEY"
  apiVersion: '2010-12-01',
  region: "us-east-1",
});

var params = {
  Destination: {
    // BccAddresses: [
    //   'STRING_VALUE',
    //   /* more items */
    // ],
    // CcAddresses: [
    //   'STRING_VALUE',
    //   /* more items */
    // ],
    ToAddresses: [
      'MY_PERSONAL_EMAIL@gmail.com',
    ]
  },
  Message: {
    Body: {
      Html: {
        Data: '<b>hello world</b>',
        Charset: 'utf-8'
      },
      Text: {
        Data: 'hello world',
        Charset: 'utf-8'
      }
    },
    Subject: {
      Data: 'hello subject',
      Charset: 'utf-8'
    }
  },
  Source: 'MY_EMAIL_REGISTERED_WITH_SES@MYDOMAIN.COM',
  // ConfigurationSetName: 'STRING_VALUE',
  // ReplyToAddresses: [
  //   'STRING_VALUE',
  //   /* more items */
  // ],
  // ReturnPath: 'STRING_VALUE',
  // ReturnPathArn: 'STRING_VALUE',
  // SourceArn: 'STRING_VALUE',
  // Tags: [
  //   {
  //     Name: 'STRING_VALUE',
  //     Value: 'STRING_VALUE'
  //   },
  //   /* more items */
  // ]
};
ses.sendEmail(params, function(err, data) {
  if (err) console.log(err, err.stack); // an error occurred
  else     console.log(data);           // successful response
});
  

Ответ №3:

Этот вариант — ваш лучший выбор

https://github.com/livelycode/aws-lib

Ответ №4:

Используйте официальный aws-sdk модуль node: https://www.npmjs.com/package/aws-sdk

Документы API хороши: http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html

Но, если вам нужен полный пошаговый пример, мы написали один: https://github.com/dwyl/sendemail
(мы используем это в нескольких проектах, и у нас это хорошо работает)

Ответ №5:

 var express = require('express');
var app = express();
var nodemailer = require('nodemailer');

var AWS = require('aws-sdk');

var smtpConfig = {
    host: 'email-smtp.us-west-2.amazonaws.com',
    port: 465,
    secure: true, // use SSL 
    auth: {
        user: 'userName',
        pass: 'password'
    }
};
var transport = nodemailer.createTransport(smtpConfig);

app.get('/sendMail', function (req, res) {
    transport.sendMail({
    from: 'youremail@localhost.com',
    to: 'recipient@localhost.com',
    subject: 'My Amazon SES Simple Email',
    text: 'Amazon SES is cool'
  },function(error, data){

      if(error){
          res.status(403).json({message:error});
      }
      if(data){
          res.end('mail sent');
      }
  });


})

var server = app.listen(8081, function () {
   var host = server.address().address
   var port = server.address().port

   console.log("Example app listening at http://%s:%s", host, port)
})
  

Ответ №6:

Вы также можете попробовать AwsSum, который окажет вам гораздо больше помощи, чем другие библиотеки.

Примечание: Я являюсь автором AwsSum, и, опять же, он активно поддерживается, в отличие от некоторых других библиотек AWS для Node.js . 🙂

Ответ №7:

Для справки, для отправки электронной почты SES можно использовать широко используемый модуль NodeMailer. Можете ознакомиться с этой схемой отправки электронной почты с zip-вложением:https://gist.github.com/munim/02e1bc10bf4e0fbb17c5bf6689906a8a