在下一個 js 中運行 amazon ses 代碼時出現錯誤。不知道哪里錯了,請嘗試修復我的錯誤。如果您有任何問題,請隨時提問。
發送郵件.js
這是我出錯的 sendmail.js 檔案。在這里,我使用亞馬遜 ses 發送郵件。
var AWS = require('aws-sdk');
AWS.config.update({ region: process.env.AWS_REGION });
// var mail = '';
function sendMail(Email) {
var result;
// Create sendEmail params
var params = {
Destination: { /* required */
CcAddresses: [
Email,
/* more items */
],
ToAddresses: [
Email,
/* 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: '[email protected]', /* required */
ReplyToAddresses: [
'[email protected]',
/* 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) {
result = 'Success';
}).catch(
function (err) {
result = 'Failed';
});
}
export default sendMail;
動態ID.js
這是我在其中撰寫端點代碼的動態 id .js 檔案
import { getDataFromSheets } from '../../../libs/sheets';
import sendmail from '../../../libs/ses/sendmail';
export default function handler(req, res) {
var data;
getDataFromSheets()
.then(sheet => {
data = sheet.length
for (var i = 1; i < data; i ) {
sendmail(sheet[i].Email)
}
})
.catch(err => console.log(err))
}
uj5u.com熱心網友回復:
每個端點功能必須通過發送一個回應(結束請求回應周期res.send(),res.json(),res.end()等等)。所以解決方案是:
export default function handler(req, res) {
var data;
getDataFromSheets()
.then(sheet => {
data = sheet.length
for (var i = 1; i < data; i ) {
sendmail(sheet[i].Email)
}
res.json({status: 'success', message: 'email has been sent'})
})
.catch(err => {
console.log(err)
res.json({status: 'fail', error: err})
})
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/334352.html
