首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >带有amazon接口的Nodemailer与WorkMail

带有amazon接口的Nodemailer与WorkMail
EN

Stack Overflow用户
提问于 2020-01-27 22:09:37
回答 1查看 997关注 0票数 4

我已经能够使用亚马逊与WorkMail的SES接口发送电子邮件,但当我尝试使用stmp时,我得到了一个错误。它们的优势是使用SES而不是smtp吗?如果坚持SES,我应该使用aws模块吗?

我的目标是创建一个简单的服务器,将联系人表单内容发送到我的电子邮件。为了简单起见,我从这段代码中去掉了这个api。

SES代码(工作):

代码语言:javascript
运行
复制
const nodemailer = require('nodemailer');
const ses = require('nodemailer-ses-transport');
const aws = require('aws-sdk');
const fs = require('fs');

aws.config.loadFromPath('./config/aws.json');



const config = fs.readFileSync('./config/aws.json')

var transporter = nodemailer.createTransport(ses({
    accessKeyId: config.accessKeyId,
    secretAccessKey: config.secretAccessKey,
    rateLimit: 5
}));


var mailOptions = {
  from: 'me@mydomain.io',
  to: 'me@mydomail.io',
  subject: 'Sending Email using Node.js[nodemailer]',
  text: 'That was easy!'
};

transporter.sendMail(mailOptions, function(error, info){
  if (error) {
    console.log(error);
  } else {
    console.log('Email sent');
  }
});  

失败代码

代码语言:javascript
运行
复制
const nodemailer = require('nodemailer');
const ses = require('nodemailer-smtp-transport');
const fs = require('fs');

const config = fs.readFileSync('./config/aws.json')

var transporter = nodemailer.createTransport(smtp({
  service: 'SES-US-EAST-1',
  server: 'smtp.mail.us-east-1.awsapps.com',
  secure: true,
  port: 465,
  auth: {
    user:   config.username,
    pass:   config.password
  },
  tls: {
    // do not fail on invalid certs
    rejectUnauthorized: false
  }
}));

var mailOptions = {
  from: config.username,
  to: 'ian@encontext.io',
  subject: 'Sending Email using Node.js[nodemailer]',
  text: 'That was easy!'
};

transporter.sendMail(mailOptions, function(error, info){
  if (error) {
    console.log(error);
  } else {
    console.log('Email sent: ' + info.response);
  }
});  

误差

代码语言:javascript
运行
复制
Error: connect ENETUNREACH 169.254.169.254:80
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1128:14) {
  message: 'EC2 Metadata roleName request returned error',
  errno: 'ENETUNREACH',
  code: 'ENETUNREACH',
  syscall: 'connect',
  address: '169.254.169.254',
  port: 80,
  time: 2020-01-27T21:34:12.265Z,
  originalError: {
    errno: 'ENETUNREACH',
    code: 'ENETUNREACH',
    syscall: 'connect',
    address: '169.254.169.254',
    port: 80,
    message: 'connect ENETUNREACH 169.254.169.254:80'
  }
}
EN

回答 1

Stack Overflow用户

发布于 2022-11-20 19:07:05

对于SMTP版本,用户名和密码是通过Amazon服务中的SMTP凭据选项创建的。在这种情况下,用户/传递Workmail无法工作。这些凭据类似于为用户样式生成的凭据。

方案用户: AKIASADASDDASD

通行证: dfsdflkjklrjlkwjrfklsdjkl3jfwerFSDFserf

代码语言:javascript
运行
复制
let transporter = createTransport({
  service: "SES-US-EAST-1",
  host: 'smtp.mail.us-east-1.awsapps.com',
  port: '465',
  tls: {
    rejectUnauthorized: false
  },
  auth: {
    user: "AKIASADASDDASD",
    pass: "dfsdflkjklrjlkwjrfklsdjkl3jfwerFSDFserf"
  }
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59939608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档