【问题标题】:Node.js: Send e-mails using AWS SESNode.js:使用 AWS SES 发送电子邮件
【发布时间】:2011-08-07 06:18:07
【问题描述】:

Node.js 中是否有用于 Amazon SES 的稳定模块?

谢谢

【问题讨论】:

    标签: node.js amazon


    【解决方案1】:

    有一个用于 Node.js 的新官方 AWS 开发工具包,为每项服务提供一个 API。你应该试一试:

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

    【讨论】:

      【解决方案2】:

      这对我有用(可选参数被注释掉;由AWS JavaScript SDK SES Documentation 构造):

      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节点模块: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 的作者,与其他一些用于 Node.js 的 AWS 库不同,它得到了积极的维护。 :)

              【讨论】:

                猜你喜欢
                • 2017-10-09
                • 2019-03-23
                • 1970-01-01
                • 2020-10-20
                • 2017-11-11
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多