Nodemailor 无法跨域发送电子邮件

2024-01-07

我正在使用 NodeMailor 通过 Node 和 Express 应用程序发送电子邮件。

问题:当我跨域发送电子邮件时,例如:我正在使用 Hostgator 电子邮件服务器,它仅使用 Hostgator 在托管电子邮件上发送电子邮件,但当我在 Gmail 上发送电子邮件时,它将返回成功

250 OK id=1hU5l2-000m0C-Lh 

但没有收到电子邮件。

注意:跨域时收到成功回复但收不到邮件

const nodemailer = require('nodemailer');
const keys = require('../config/keys');
const smtpTransport = require('nodemailer-smtp-transport');
emailCredentaials = (data) => {

      var transporter = nodemailer.createTransport(smtpTransport ({
        host: 'my.hostgator.com',
        port: 465,
        secure:true,
        auth: {
            user: keys.email.emailUserName,
            pass: keys.email.emailPassword
          },
          tls: {
            // do not fail on invalid certs
            rejectUnauthorized: false
          }  
        }));
    var mailOptions = {
        from: keys.email.emailUserName,
        to: data.email,
        subject: 'Demo account credentials',
        html: '<h3>Please Follow the link to login : '
            + keys.emailLinks.accountCredentailLink + '<h3>' + '<br>Useraname &nbsp;&nbsp; : &nbsp;&nbsp;' + data.email + '</br><br> Password &nbsp;&nbsp; : &nbsp;&nbsp;' + data.password + '</br>'
    };

    transporter.sendMail(mailOptions, function (error, info) {
        if (error) {
            console.log("***********" + error);
        } else {
            console.log('*********Email sent:********' + info.response);
        }
    });
}
module.exports = emailCredentaials;

我对 nodemailor 使用了上述配置。谢谢


经过大量挖掘后,我终于得到了以下答案,如果有人遇到同样的问题,请尝试以下解决方案。我添加了以下配置。

const nodemailer = require('nodemailer');
const keys = require('../config/keys');
const smtpTransport = require('nodemailer-smtp-transport');

emailCredentaials = (data) => {

    var transporter = nodemailer.createTransport(smtpTransport({
        name: 'hostgator',
        host: 'my.hostgator.com',
        port: 465,
        secure: true,
        auth: {
            user: keys.email.emailUserName,
            pass: keys.email.emailPassword
        }
    }));

    var mailOptions = {
        from: keys.email.emailUserName,
        to: data.email,
        subject: 'Demo account credentials',
        html: '<h3>Please Follow the link to login : '
            + keys.emailLinks.accountCredentailLink + '<h3>' + '<br>Useraname &nbsp;&nbsp; : &nbsp;&nbsp;' + data.email + '</br><br> Password &nbsp;&nbsp; : &nbsp;&nbsp;' + data.password + '</br>'
    };


    transporter.sendMail(mailOptions, function (error, info) {
        if (error) {
            console.log("***********" + error);
        } else {
            console.log('*********Email sent:********' + info.response);
        }
    });
}
module.exports = emailCredentaials;

已发布问题的更改:

  • 需要添加“nodemailer-smtp-transport”

npm install --save nodemailer-smtp-transport

var transporter = nodemailer.createTransport(smtpTransport({
        name: 'hostgator',
        host: 'my.hostgator.com',
        port: 465,
        secure: true,
        auth: {
            user: keys.email.emailUserName,
            pass: keys.email.emailPassword
        }
    }));
  • 上面添加了“name“属性是服务器名称,谢谢
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Nodemailor 无法跨域发送电子邮件 的相关文章

随机推荐

  • 背包0-1路径重建(拿哪些物品)[重复]

    这个问题在这里已经有答案了 我知道如何用动态规划方法解决背包 0 1 问题 但我很难弄清楚要拿哪些物品而不影响 O N C N 个物品 C 容量 的复杂性 有什么想法 我更喜欢自下而上的方法 假设现在您将结果存储在数组中bool a whe
  • MySQL因存储过程生成UID而死锁

    我有一个从 ticket 表生成 UID 的存储过程 但在负载下我遇到了很多死锁 每当我的任务需要新的 UID 时 我都会从多个并发连接多次调用此过程 BEGIN DECLARE a uid BIGINT 20 UNSIGNED START
  • 使用android gradle + dagger运行instrumentTests

    我最近开始使用 Android Studio 和 gradle 进行 android 开发 发现它总体上比 eclipse ant 或 maven 好得多 不过 我最近开始尝试使用我的应用程序实施某种单元和 或集成测试 我能够使用谷歌最近发
  • 如何在centOS 7中启动apache

    我使用以下命令启动 Apache service httpd start in centOS6 今天我下载了centOS7 64bit minimal并想在安装后启动 Apache 当我使用service httpd start 操作系统会
  • 我应该如何在后台运行我的 Golang 进程?

    这个问题与编程无关 但对于程序员来说肯定很重要 我编写了一个简单的 smtp 服务器 当我从控制台运行它时 一切都很好 除了它阻止了命令行 我知道我可以通过以下方式运行它 nohup 或通过 screen tmux 等 但问题是 我应该如何
  • 带魔杖的谷歌云功能停止工作

    我设置了 3 个 Google Cloud Storge 存储桶和 3 个函数 每个存储桶一个 当 PDF 文件上传到存储桶时将触发这些函数 函数将 PDF 转换为 png 图像并进行进一步处理 当我尝试创建第四个存储桶和类似的功能时 奇怪
  • Keras:“运行时错误:无法导入 pydot。”安装 graphviz 和 pydot 后

    我在 Windows 10 上使用 Anaconda Python 2 7 我计划进行 Keras 可视化 因此 当间谍程序打开时 我打开了 Anaconda 命令提示符并 pip 安装了 graphviz 和 pydot 现在 当我尝试运
  • 区分扫描仪和键盘

    大家好 我有一台条形码扫描仪连接到一台使用 c 程序的 PC 现在我想区分扫描仪和键盘 哪一个正在向我的程序发送数据 每个人都可以帮助我编写 c 代码或提供建议吗 有人在另一个主题中对我说了这句话 但我还不能这样做 基本上 您可以配置扫描仪
  • Glassfish 服务器不支持 JDK 8

    我在 NetBeans 的 Web 项目中使用带有 lambda 的 jdk 8 但是当将其部署到 glassfish 时 它向我显示以下错误 java lang RuntimeException Uncompilable source c
  • 当字符串文字改变时会发生什么? [复制]

    这个问题在这里已经有答案了 我想将字符串文字更改为全大写 这是我的代码 a and b are the same literal String a Test String b Test now I want to change all b
  • 创建自定义 UIView 并在 Swift 中显示为弹出窗口

    我正在尝试创建一个自定义UIView并使用 Swift 在我的主视图中将其显示为弹出窗口 我的定制UIView代码是 class DatePopUpView UIView var uiView UIView override init su
  • 带有 LLVM 的 C ABI

    我有一个用 LLVM 编写的编译器 我希望提高 ABI 合规性 例如 我发现很难在 Windows x86 或 Linux 上实际找到 C ABI 的规范文档 我发现的那些用 RAX EAX 等术语解释它 而不是我可以使用的 IR 术语 到
  • 如何:动态移动 Google Gauge?

    观察 CPU 和内存指标 http code google com apis visualization documentation gallery gauge html Loading一会儿 它们动态地移动 下面显示的示例代码不会像那样移
  • 来自 nginx/passenger 的“从应用程序收到的响应不完整”

    我尝试通过 capistrano 在 nginx 和 ubuntu 上部署我的 Rails 应用程序 就像页面上的教程一样https gorails com deploy ubuntu 14 04 https gorails com dep
  • Java 8 替代 Map.entry() 将值映射到新 Map?

    我找到了解决长期以来一直试图解决的问题的解决方案 不幸的是 我无法使用该解决方案 因为目标 java 版本是 Java 8 Map
  • 如何在大型 SQL Server 查询中使用多个核心?

    我有两台 SQL Server 一台用于生产 一台用作存档 每天晚上 我们都会运行一个 SQL 作业并将当天的生产数据复制到存档中 随着我们的成长 这个过程需要的时间越来越长 当我观察运行归档进程的归档服务器上的利用率时 我发现它只使用单个
  • C# 中的 Jaro–Winkler 距离算法

    如何在 C 中实现 Jaro Winkler 距离字符串比较算法 public static class JaroWinklerDistance The Winkler modification will not be applied un
  • 使用 log4j 编写审核日志

    我有一个应用程序需要写入两种不同类型的日志 应用程序日志和审核日志 应用程序日志用于调试目的 而审核日志用于记录所执行的操作 两个日志将位于不同的文件中 每个文件应仅包含上述日志 意味着审核日志文件不能包含应用程序日志 反之亦然 如何使用
  • 在 Node.js 中缓存数据最便宜的方法?

    我正在实现一个运行匹配算法的 Node js 服务器 由于我希望服务器尽快响应 因此我希望能够从缓存中检索数据 而不是每次都查询数据库 例如 我需要保留 10000 50000 个用户的信息 我担心这会占用大量内存 有没有什么方法可以将这么
  • Nodemailor 无法跨域发送电子邮件

    我正在使用 NodeMailor 通过 Node 和 Express 应用程序发送电子邮件 问题 当我跨域发送电子邮件时 例如 我正在使用 Hostgator 电子邮件服务器 它仅使用 Hostgator 在托管电子邮件上发送电子邮件 但当