首页 > 解决方案 > 如何在下一个 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);
  });

标签: javascriptnode.jsreactjsamazon-web-servicesnext.js

解决方案


推荐阅读