AWS SES - Nodemailer - transporter.sendEmail不是一个函数

问题描述 投票:0回答:1
const nodemailer = require('nodemailer');
const aws = require('aws-sdk');
aws.config.update({region: 'myRegion');
const senderEmail = process.env.SENDER_EMAIL;
const destinationEmail = process.env.DESTINATION_EMAIL;
const transporter = nodemailer.createTransport({
SES: new aws.SES({
apiVersion: '2010-12-01'
})
});
exports.handler = async (event) => {
 let request = event.body;
 try {
 await this.sendEmail(request);
   return {
  'statusCode': 201,
  'headers': {
    'Access-Control-Allow-Origin': '*'
   }
 };
 } catch (error) {
return {
  'statusCode': 500
 };
  }
  };

exports.sendEmail = async (request) => {
try {
await transporter.sendEmail({
  from: senderEmail,
  to: destinationEmail,
  subject: 'Hello',
  text: 'Hello using SES'
  });
  } catch (error) {
   console.log(error);
   throw error;
   }
   };

我有以下代码,它给出了一个错误,说'transporter.Email'不是一个函数。我在package.json中指定了以下依赖项(某些内容被剥离但它是有效的JSON)

  "devDependencies": {
    "aws-sdk": "^2.267.1",
    "chai": "^4.1.2",
    "eslint": "^5.1.0",
    "eslint-config-standard": "^11.0.0",
    "eslint-plugin-import": "^2.13.0",
    "eslint-plugin-node": "^6.0.1",
    "eslint-plugin-promise": "^3.8.0",
    "eslint-plugin-standard": "^3.1.0",
    "hippie-swagger": "^3.2.0",
    "mocha": "^5.1.1",
    "mochawesome": "^3.0.3",
    "sinon": "^6.1.0",
    "swagger-parser": "^5.0.2"
  },
  "dependencies": {
    "axios": "^0.18.0",
    "nodemailer": "^4.6.8",
    "nodemailer-ses-transport": "^1.5.1"
  }

初看起来,它看起来不像权限问题,因此将其排除在外。任何修复它的指针都会有很大的帮助。

我在lambda中使用Node.js 8.10。

amazon-web-services aws-lambda amazon-ses nodemailer
1个回答
0
投票

应该是transporter.sendMail

http://nodemailer.com/usage/#sending-mail

© www.soinside.com 2019 - 2024. All rights reserved.