在typescript中使用SES发送电子邮件
我正在尝试使用typescript中的ses设置电子邮件服务。我遵循了这个例子,但我得到了 AWS.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
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) { ...
}
};