当前位置: 首页 > 知识库问答 >
问题:

Nodemailer-无法获得本地发行者证书

邢飞鸿
2023-03-14

我试图发送电子邮件使用Nodemailer与这些配置:

var transporter = nodemailer.createTransport(smtpTransport({
          host: 'smtp.outlookhost',
          port: 25,
          auth: {
            user: '',
            pass: ''
          },
          secure:false,
          logger: true,
          debug: true
        }));

我得到这个错误:

Error: unable to get local issuer certificate

我使用Outlook发送电子邮件。我如何提供证书。

修改了配置:

 var transporter = nodemailer.createTransport(smtpTransport({
              host: 'smtp.outlookhost',
              port: 25,
              auth: {
                user: '',
                pass: ''
              },
              secure:true,
              logger: true,
              debug: true,
              tls: {
              // do not fail on invalid certs
              rejectUnauthorized: false
            }
    }));

错误:

Error: 101057795:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:openssl\ssl\s23_clnt.c

共有3个答案

万勇
2023-03-14

就我而言,NodeEmailer找不到我们的公司CA证书。所以我设置了ca选项,它解决了这个问题。CA证书采用PEM格式,以----开始证书------开头,以----结束证书------结尾。

const fs = require('fs');
const path = require('path');
const transporter = nodemailer.createTransport({
  host: 'smtp-server',
  port: 25,
  tls: {
    ca: [ fs.readFileSync(path.resolve(__dirname, 'ca.pem')) ],
  },
});
林项明
2023-03-14

这可能会帮助您:
无法连接到outlook。使用nodeEmailer的com SMTP

我会使用第二种方法,因为它更容易!=D

var transport = nodemailer.createTransport("SMTP", {
    service: "hotmail",
    auth: {
        user: "user@outlook.com",
        pass: "password"
    }
});
侯兴为
2023-03-14
  const transporter = nodemailer.createTransport({
    host: "smtp.outlookhost",
    port:  25,
    secure: false,
    tls: {rejectUnauthorized: false}
  });

晚回答,但这对我使用当前版本的nodemailer和Outlook主机工作。

 类似资料:
  • Rails/Ruby/OpenSSL不允许我发送电子邮件,为什么? 控制台中的测试: 结果错误: “SSL\u connect返回=1 errno=0 state=错误:证书验证失败(无法获取本地颁发者证书)(OpenSSL::SSL::SSLError)” 我的证书路径: 我的环境: 铁轨6.1.4.1 红宝石3.0.1p64 OpenSSL 1.1.1f 编辑:这将建立工作连接:

  • 我正在尝试使用python从web获取数据。我导入了urllib。请求包,但在执行时,我得到错误: 我正在Mac OS High Sierra上使用Python 3.7 当我将URL更改为“http”时,我能够获取数据。但是,我相信,这可以避免检查SSL证书。 因此,我在互联网上查找并找到了一个解决方案:运行 这解决了我的问题。但是我对SSL之类的东西一无所知。你能帮我理解它到底做了什么来解决我的

  • 问题内容: 执行npm安装时出现错误: 我最近从一个较早的版本更新到了节点4,这听起来好像在出现此类问题时节点变得更加严格。 这里讨论了一个有关使用ca文件的问题,但这超出了我的理解,我不确定该怎么做。 我位于公司防火墙的后面,但是我可以不受限制地在浏览器中访问url。 有谁对这个问题有进一步的了解,有什么可能的解决方案? 我想知道与此同时恢复到节点0.12 :( 问题答案: 可以使用配置文件来配

  • 我有一个站点在本地运行在MAMP Pro(macos)上,当我使用时,它总是出现cURL错误 我已经搜索并尝试了多种解决方案,但似乎没有任何效果。 null

  • 我已经在Windows Apache服务器上安装了Mandrill PHP API。当试图发送电子邮件使用下面的代码我得到的错误: Mandrill_HttpError-对消息/发送模板的API调用失败:SSL证书问题:无法获取本地颁发者证书 我不清楚Mandrill如何连接到我的本地颁发者证书。我的web服务器确实具有有效的证书,并且可以成功显示HTTPS页面。 有什么想法吗?

  • 我有一个简单的链设置,在这种情况下可以成功验证: 然而,在这些情况下,我会遇到错误: 特别是无法获得颁发者证书。 不知道该怎么做。 在这里他们说: OpenSSL无法为颁发者(或TLS握手期间从web服务器接收的链中第一个证书的颁发者)找到用于验证签名的本地证书。 此问题通常由日志消息表示,例如“无法获得本地颁发者证书”或“自签名证书”。当一个证书被验证时,它的根CA必须被OpenSSL“信任”,

  • 我已经在stackoverflow上尝试了很多解决这个问题的方法,不幸的是,到目前为止,没有任何方法对我有效。 它始于作曲家安装。我的env详细信息如下所示: > 操作系统:Windows 7 PHP V 7.1.10,XAMPP版本 我正在运行MINGW64(它是与git v2.1.5一起安装的) 卷曲--版本 curl 7.56.1(x86_64-w64-mingw32)libcurl/7.5

  • 我使用MAMP作为本地开发环境。我想实现一个谷歌认证-但不断得到这个SSL错误。 < li >正如其他SO主题所建议的,我已经在我的PHP.ini文件中添加了这行代码: 知道如何在我的本地环境中传递这个SSL错误吗? 这是代码: