Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在typescript中使用SES发送电子邮件_Typescript_Amazon Ses - Fatal编程技术网

在typescript中使用SES发送电子邮件

在typescript中使用SES发送电子邮件,typescript,amazon-ses,Typescript,Amazon Ses,我正在尝试使用typescript中的ses设置电子邮件服务。我遵循了这个例子,但我得到了 AWS.ses不是构造函数 这是我的电子邮件服务课 const AWS = require("aws-sdk"); const loggerService: LoggerServiceInterface = new LoggerService(); AWS.config.update({region: "us-east-1"}); export class Em

我正在尝试使用typescript中的ses设置电子邮件服务。我遵循了这个例子,但我得到了

AWS.ses不是构造函数

这是我的电子邮件服务课

const AWS = require("aws-sdk");
const loggerService: LoggerServiceInterface = new LoggerService();

AWS.config.update({region: "us-east-1"});

export class EmailService {

sendEmail(recipient: string): Promise<boolean> {

 const params = {
  Destination: { /* required */
    CcAddresses: [
      "abcd@gmail.com",
      /* more items */
    ],
    ToAddresses: [
      "abcd@gmail.com",
      /* more items */
    ]
  },
  Message: { /* required */
    Body: { /* required */
      Html: {
       Charset: "UTF-8",
       Data: "HTML_FORMAT_BODY"
      },
      Text: {
       Charset: "UTF-8",
       Data: "TEXT_FORMAT_BODY"
      }
     },
     Subject: {
      Charset: "UTF-8",
      Data: "Test email"
     }
    },
  Source: "xyxy@gmail.com",
  ReplyToAddresses: [
     "xyxy@gmail.com",
  ],
};

const sendPromise = new AWS.SES({apiVersion: "2010-12-01"}).sendEmail(params).promise();

sendPromise.then(function(data) {
  console.log(data.MessageId);
}).catch(
  function(err) {
  console.error(err, err.stack);
});

return Promise.resolve(true);
}
}
const AWS=require(“AWS sdk”);
const loggerService:LoggerServiceInterface=new loggerService();
AWS.config.update({地区:“us-east-1”});
导出类电子邮件服务{
sendEmail(收件人:字符串):承诺{
常量参数={
目的地:{/*必需*/
C地址:[
"abcd@gmail.com",
/*更多项目*/
],
地址:[
"abcd@gmail.com",
/*更多项目*/
]
},
消息:{/*必需*/
正文:{/*必需*/
Html:{
字符集:“UTF-8”,
数据:“HTML\u格式\u正文”
},
正文:{
字符集:“UTF-8”,
数据:“文本\格式\正文”
}
},
主题:{
字符集:“UTF-8”,
数据:“测试电子邮件”
}
},
来源:“xyxy@gmail.com",
答复地址:[
"xyxy@gmail.com",
],
};
const sendPromise=new AWS.SES({apiVersion:“2010-12-01”}).sendmail(params.promise();
sendPromise.then(函数(数据){
console.log(data.MessageId);
}).接住(
功能(err){
console.error(err,err.stack);
});
返回承诺。解决(真实);
}
}
我在sanbox环境中,这两封电子邮件都经过验证。我错过了什么吗?

这对我很有用

import { SES, AWSError } from 'aws-sdk';
import { SendEmailRequest, SendEmailResponse } from 'aws-sdk/clients/ses';

const ses = new SES();

const params: SendEmailRequest = {
    Source: sender,
    Destination: {
        ToAddresses: [
            recipient
        ]
    },
    Message: {
        Subject: {
            Data: subject,
            Charset: charset
        },
        Body: {
            Text: {
                Data: body,
                Charset: charset
            },
            Html: {
                Data: html,
                Charset: charset
            }
        }
    }
}

ses.sendEmail(params, (err: AWSError, data: SendEmailResponse) => {
  if (err) console.log(err, err.stack);
    else console.log(data);
});

使用异步lambda函数和:

从“aws lambda”导入{Handler};
从“aws sdk”导入{SES};
类型事件={
...
};
导出常量处理程序:处理程序=异步(事件:事件)=>{
试一试{
常量参数:SendEmailRequest={
...
}
var result=等待ses.sendmail(params.promise();
}捕获(例外){。。。
}
};

您是否尝试从“AWS sdk”使用
导入{AWS}
?我有
const AWS=require(“AWS sdk”)是,但由于您使用的是typescript,我不确定它是否正常工作。我尝试了从“AWS sdk”导入{AWS}
,但这是一个语法错误。它在AWS sdk中找不到AWS,但采用
const AWS=require(“AWS sdk”)
import { Handler } from 'aws-lambda';
import { SES } from 'aws-sdk';

type Event = {
  ...
};

export const handler: Handler<Event> = async (event: Event) => {
  try {
    const params: SendEmailRequest = {
      ...
    }
    var result = await ses.sendEmail(params).promise();
  } catch (exception) { ...
  }
};