javascript - 如何在下一个 js 中使用亚马逊 SES 发送电子邮件?
问题描述
大家好,遇到一个问题,我不知道如何实现。当我运行我的应用程序并且我的谷歌表格数据库显示消息成功发送时,我想发送电子邮件。谁能告诉我如何使用下一个 JS 使用亚马逊 SES 发送电子邮件。我创建了一个端点。如果您有任何疑问,请随时询问。
index.js
这是一个 index.js 文件,其中显示了我的输出。
import Head from 'next/head'
import Image from 'next/image'
import styles from '../styles/Home.module.css'
import { getDataFromSheets } from './libs/sheets'
export default function Home({ data }) {
return (
<div className={styles.container}>
<Head>
<title>Nextsheet </title>
<meta
name="description"
content="Connecting NextJS with Google Spreadsheets as Database"
/>
<link rel="icon" href="/favicon.ico" />
</Head>
<main>
<h1>Welcome to Nextsheet </h1>
<p>Connecting NextJS with Google Spreadsheets as Database</p>
<ul>
{data && data.length ? (
data.map((item) => (
<li key={item}>
{item.Email} - {item.Subject} - {item.Body} - {item.Status}
</li>
))
) : (
<li>Error: do not forget to setup your env variables </li>
)}
</ul>
</main>
</div>
)
}
export async function getStaticProps() {
const sheet = await getDataFromSheets();
return {
props: {
data: JSON.parse(JSON.stringify(sheet.slice(0, sheet.length))), // remove sheet header
},
revalidate: 1, // In seconds
};
}
发送电子邮件.js
这是我要应用的发送电子邮件文件和代码
import { getDataFromSheets } from "../../libs/sheets";
export default function handler(req,res){
getDataFromSheets()
.then(sheet=> res.status(200).json(sheet))
.catch(err=> console.log(err))
}
// Load the AWS SDK for Node.js
var AWS = require('aws-sdk');
// Set the region
AWS.config.update({region: 'REGION'});
// Create sendEmail params
var params = {
Destination: { /* required */
CcAddresses: [
'EMAIL_ADDRESS',
/* more items */
],
ToAddresses: [
'EMAIL_ADDRESS',
/* 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: 'SENDER_EMAIL_ADDRESS', /* required */
ReplyToAddresses: [
'EMAIL_ADDRESS',
/* more items */
],
};
// Create the promise and SES service object
var sendPromise = new AWS.SES({apiVersion: '2010-12-01'}).sendEmail(params).promise();
// Handle promise's fulfilled/rejected states
sendPromise.then(
function(data) {
console.log(data.MessageId);
}).catch(
function(err) {
console.error(err, err.stack);
});
解决方案
推荐阅读
- python - Flyte 0.16.2:加载 Blob 时出错 - 如何让 Types.Blob.fetch() 在任务修饰函数中工作?
- flutter - 当它向我显示错误时,我该如何处理?
- javascript - 将点击事件应用于具有类的元素
- sql - SQL - 试图得到不存在的东西
- django - 如何使用 django-filters 对基于类的列表视图进行分页
- java - 通过重新启动应用程序 Gson 枚举松散值
- scala - 在使用 scala spark 写入 Kafka 主题之前为 Dataframe 定义模式
- php - PHP API 响应将数组转换为 JSON 返回空值
- r - 汇总数据的整理数据原则
- azure - Azure - Windows 10 上的文件共享同步