首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >(中间值).sendEmail(...).promise不是函数

(中间值).sendEmail(...).promise不是函数
EN

Stack Overflow用户
提问于 2020-07-13 19:07:38
回答 1查看 330关注 0票数 2

我在我的服务中使用aws-sdk来发送电子邮件。我得到了下面的异常代码,它以前工作得很好。

代码语言:javascript
运行
复制
const aws = require('aws-sdk');

var params = {
  Destination: { 
    ToAddresses: [
      'checkMail@gmail.com'
    ]
  },
  Message: { 
    Body: { 
      Html: {
       Charset: "UTF-8",
       Data: "HTML_FORMAT_BODY"
      },
      Text: {
       Charset: "UTF-8",
       Data: "this is sample"
      }
     },
     Subject: {
      Charset: 'UTF-8',
      Data: 'Test email'
     }
    },
  Source: 'AWS Services<awsEmails@awsService.com>'
  ReplyToAddresses: [
     'AwsServices<noreply@awsServices.com>'
  ],
};

// Create the promise and SES service object
var emailPromise = new aws.SES({apiVersion: '2010-12-01'}).sendEmail(params).promise();

// Handle promise's fulfilled/rejected states
emailPromise.then(
  function(data) {
      //my logic on success goes here
  }).catch(
    function(err) {
      //my logic on error goes here      
  });

我尝试对来自AWS的电子邮件使用不同的API调用,但都返回相同的错误。

EN

回答 1

Stack Overflow用户

发布于 2021-02-17 19:10:07

如果只是使用单个服务,

  1. 会避免需要所有aws-sdk。要使用SES,您可以先yarn add @aws-sdk/client-ses,然后再使用它const { SESClient, SendEmailCommand } = require("@aws-sdk/client-ses");

我在这里向您展示了一个完整的示例,使用nodeJS lambda函数中的SES发送电子邮件:

代码语言:javascript
运行
复制
const {
  SESClient,
  SendEmailCommand,
} = require("@aws-sdk/client-ses");
const REGION = "eu-west-3"; // Use you AWS region
const ses = new SESClient({ region: REGION });

exports.handler = async function (event) {
  const path = event.path;
  
  if (path === "/send-email") {
    const peopleAmount = 12;
    const params = {
      Source: "John Wick <john.wick@killer.com>",
      Destination: {
        ToAddresses: ["adresse1@test.com"],
      },
      Message: {
        Body: {
          Html: {
            Data: `<span>This email is about <b>${peopleAmount}</b> people.</span>`,
          },
        },
        Subject: {
          Data: "Email Title",
        },
      },
    };
    
    try {
      const data = await ses.send(new SendEmailCommand(params));

      return {
        statusCode: 200,
        body: peopleAmount,
      };
    } catch (e) {
      console.error(e, e.stack);
      return {
        statusCode: 400,
        body: "Sending failed",
      };
    }
  }
}

我希望这能帮上忙here is documentation to use SES email template

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62874565

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档