【问题标题】:SMTP server using hmailserver. Host cannot be resolved to a type使用 hmailserver 的 SMTP 服务器。主机无法解析为类型
【发布时间】:2020-11-06 09:58:12
【问题描述】:

我正在尝试创建本地 SMTP 服务器。我按照这个配置了一切:Link to set-up hmailserver

在那之后,我运行了我的诊断程序,它说主机(在我的情况下是 noreply@bufferoverflow.com)无法解决。我搜索并阅读了 hmailserver Docs 的文档和问题部分,发现我的机器上缺少 DNS 配置。

我按照这篇文章设置了 DNS ip 来命名:How to add ip domain mapping in windows

127.0.0.1 bufferoverflow.com

我的

C:\Windows\System32\drivers\etc>记事本hosts.ics

它仍然说主机无法解析为类型。我试图查看端口是否真的打开并正在监听。所以我在 CMD 中做了这个命令:

netstat -a

它在听。我仔细检查了所有内容,但找不到哪里出错了。我创建了一个简单的 nodejs 服务器,并将其托管在 localhost 的 80 端口上,并在我的浏览器中输入“bufferoverflow.com”,它打开了 127.0.0.1 aka localhost,这是因为它具有我提供的 ip 域映射。

现在我迷失了为什么无法解析主机名。我的 DNS 很酷。 Everthing 已按照文档所述进行配置,并且端口也已打开并正在侦听。请帮帮我。

【问题讨论】:

  • 什么是“我的诊断工具”?
  • 在设置指南中,它说的最后一件事是检查服务器是否实际运行并且一切正常。就像一张假支票。那是诊断窗口。请看文章中附上的图片。
  • 嘿,你一定要使用这个吗?我可以带你完成一个简单的步骤,没有错误,有一个现成的 SMTP,有时你必须要求激活 + 它是免费的,每天可以发送 300 封邮件
  • 不,先生,我想从我的服务器发送邮件。我开始了解nodemailer。我创建了一个不太安全的谷歌帐户并实现了这一点。但我需要来自我的自定义域的邮件,例如 noreply@mydomain.com 了解了 sendgrid,然后明白我需要自己的 SMTP 服务器。一段时间后,我明白如果我有自己的 SMTP,为什么我什至需要发送网格。然后我搜索创建自己的 SMTP 服务器。我遇到了这个东西并被困在这里。这是整个问题。 PS:我还没有购买域名。

标签: dns hmail-server


【解决方案1】:

因此,根据您所说,您创建了自己的 SMTP 服务器,这很好,值得学习,但我建议您使用 SendinBlue 第三方服务 FREE 并为您提供300 封邮件/天

开始使用 sendinblue:

  • 链接:https://www.sendinblue.com/

  • 在您决定付款之前免费制作一个帐户,然后您会在那里阅读

  • 一旦您的帐户设置完毕,并且经常激活一个帐户的 SMTP 服务不会自动激活,因此您必须通过电子邮件发送给他们,他们会在 24 小时内回复我喜欢这项服务(我是不宣传也不赞助炒作他们或任何只是说出我所经历的真相)。

现在您的帐户和 SMTP 服务已激活,现在的问题是您如何使用 sendinBlue?

  • 在右上角的仪表板中,您将看到您的用户名

  • 点击它会出现一个下拉菜单

  • 那你想去SMTP & API

  • 您将看到一个菜单,左侧是API Keys,右侧是SMTP

  • 您想点击 SMTP。

  • 登录后,您将看到 登录,这将是您注册时使用的电子邮件,您将看到 主密码,这是您用来验证自己的。 p>

实现:现在您已经对所有内容进行了排序,您知道密钥在哪里并登录

在 .env 文件中

sendinBlue__login=<Your email that your saw in that smtp tab>
sendinBlue__key= <Key you saw in that smtp tab>

在您要发送电子邮件的文件中

const nodemailer = require('nodemailer');
router.post('/api/email', (request, response)=>{

   const transporter = nodemailer.createTransport({

       service:'SendinBlue',
       auth:{
           user:process.env.sendinBlue__login,
           pass:process.env.sendinBlue__key
       }

   })


   const mailOptions = {
       from:process.env.sendinBlue__login
       to:'example@gmail.com',
       subject:'Order confirmation',
       html:`

           <h1>Confirmation of your received  order</h1>

       `
 
   }


   transporter.sendMail(mailOptions, (error, info)=>{

       if (error){
           console.log(error);
           return response.status(500).json({msg:"Email failed to send probably network problems or SMTP not activated"});

       }
       return reponse.status(200).json({msg:'Email sent'});

   })

})
  • 这就是 sendinBlue 的工作原理,只需简单的注册和帐户激活以及 SMTP 激活(如果未通过电子邮件客户支持激活)

如果上面的指南对您没有意义:无耻的插件

  • 你可以去看看我做的视频,我使用 sendinBluenodemailer 发送电子邮件 有点结束了

  • 链接:https://youtu.be/5vWXbGIdDQw

现在,如果您想使用 noreply@domain.com 和 sendinBlue 发送电子邮件,您甚至不必激活电子邮件,但仍然可以发送

  • 如何处理这就是您制作 mailOptions 的方式
router.get("/api/test", (request, response) => {
  const transpoter = nodemailer.createTransport({
    service: "SendinBlue",
    auth: {
      user: process.env.sendinBlue__email,
      pass: process.env.sendinBlue__key,
    },
  });

  const mailOptions = {
    from: "noreply@Test.com",
    to: "juniorWebProjects@gmail.com",
    subject: "Confirmation Order",
    html: `
       
       <h1>Order Received</h1>
    
    `,
  };

  transpoter.sendMail(mailOptions, (err, info) => {
    if (err) {
      return console.log(err);
    }
    return console.log("Message sent");
  });
});
  • 在我的 mailOptions 上查看我明确给自己写了我想要的电子邮件,当 sendinBlue 发送该电子邮件时,接收者会看到来自 noreply@Test.com

【讨论】:

  • 我怎样才能得到 noreply@mydomain.com 这个东西?
  • @ShobhitTewari sendinBlue 的好处是它是一种运输方式,我如何看待它我会给你一个例子,你可以如何制作你的 noreply@mydomain.com。 在我之前的答案下方查看我现在将对其进行编辑
  • 很高兴我能帮助 SendinBlue 在我看来是最好的,而且很容易。
  • 是的,兄弟,这很棒。非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-22
  • 2011-09-04
  • 2019-06-06
  • 2023-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多