AWS SES是Amazon Web Services的一项服务,用于发送和接收电子邮件。要将收到的电子邮件保存到SQL Server数据库,可以使用以下解决方案。
创建一个SES规则集:首先,您需要在AWS控制台上创建一个SES规则集,并配置规则以将接收到的电子邮件转发到您的应用程序。
创建一个Lambda函数:使用AWS Lambda服务创建一个函数,该函数将处理接收到的电子邮件并将其保存到SQL Server数据库。以下是一个示例的Node.js Lambda函数代码:
const AWS = require('aws-sdk');
const sql = require('mssql');
exports.handler = async (event) => {
const message = event.Records[0].ses.mail;
// 解析电子邮件内容
const from = message.source;
const subject = message.commonHeaders.subject;
const body = message.decodedBody;
// 保存到数据库
try {
await sql.connect({
server: 'your-sql-server-endpoint',
user: 'your-username',
password: 'your-password',
database: 'your-database'
});
await sql.query`INSERT INTO Emails (From, Subject, Body) VALUES (${from}, ${subject}, ${body})`;
sql.close();
return {
statusCode: 200,
body: 'Email saved to database'
};
} catch (error) {
console.error(error);
return {
statusCode: 500,
body: 'Error saving email to database'
};
}
};
将Lambda函数与SES规则集关联:在SES控制台上,将创建的Lambda函数与规则集关联,以便在接收到电子邮件时触发Lambda函数。
创建SQL Server数据库表:在SQL Server数据库中创建一个表,用于存储收到的电子邮件的信息。以下是一个示例的SQL脚本:
CREATE TABLE Emails (
Id INT IDENTITY PRIMARY KEY,
[From] NVARCHAR(255) NOT NULL,
[Subject] NVARCHAR(255) NOT NULL,
[Body] NVARCHAR(MAX) NOT NULL
);
配置SQL Server连接:在Lambda函数中配置SQL Server连接参数,包括服务器端点、用户名、密码和数据库名称。
测试:使用AWS SES发送一封电子邮件到您的配置的接收邮箱地址,然后检查SQL Server数据库中是否保存了该电子邮件的信息。
请注意,上述代码示例仅供参考,您需要根据自己的环境和需求进行适当的修改和调整。