无法使用 TLS 连接到 SMTP 服务器

问题描述 投票:0回答:1

我使用这些设置使用 apache java 邮件客户端并且它有效。

  smtp:
    host: host
    port: 587
    sslEnabled: false
    sslTrust: trust
    tlsEnabled: true

我正在尝试使用nodemailer在node.js中重新创建它

var transporter = nodemailer.createTransport({
  host: host,
  port: 587,
  secure: true, // upgrade later with STARTTLS
  auth: {
    user: email,
    pass: pass,
  },
  requireTLS: true,
  tls: {
    rejectUnauthorized: false,
    servername: trust
  },
  debug: true
});
 
var mailOptions = {
  from: email,
  to: email,
  subject: 'test subject',
  text: 'test text'
};

我对双方都保持信任并主持同样的事情。

这些设置返回以下错误

Error: connect ETIMEDOUT address:587
    at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1187:16) {
  errno: -60,
  code: 'ESOCKET',
  syscall: 'connect',
  address: '155.56.68.170',
  port: 587,
  command: 'CONN'
}
email error: Error: connect ETIMEDOUT address:587
email error: Error: connect ETIMEDOUT address:587

此电子邮件服务器表示需要以下配置

- Port: 465
  SSL: required
or
- Port: 587
  STARTTLS: required

我尝试了端口 465、587、secure 和 requireTLS 的所有组合。

我没有 SSL 证书。

node.js smtp nodemailer
1个回答
0
投票

使用安全:假,

var transporter = nodemailer.createTransport({
  host: host,
  port: 587,
  secure: false, 
  auth: {
    user: email,
    pass: pass,
  },
  requireTLS: true,
  tls: {
    rejectUnauthorized: false,
    servername: trust
  },
  debug: true
});
 
var mailOptions = {
  from: email,
  to: email,
  subject: 'test subject',
  text: 'test text'
};

此代码没有其他错误

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