首页 > 解决方案 > 使用 hmailserver 的 SMTP 服务器。主机无法解析为类型

问题描述

我正在尝试创建一个本地 SMTP 服务器。我根据这个配置了一切:Link to setup 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 中做了这个命令:

网络统计 -a

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

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

标签: dnshmail-server

解决方案


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

sendinblue 入门:

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

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

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

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

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

  • 单击它,应该会出现一个下拉菜单

  • 然后你想去SMTP & API

  • 完成后,您将看到一个菜单,左侧是API 密钥,右侧是SMTP

  • 您要单击 SMTP。

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

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

在 .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

如果上面的指南对您没有意义:Shameless plug

  • 你可以去看看我做的视频,我使用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 发送邮件的证明


推荐阅读