【问题标题】:node_mailer doesn't return err but email not sentnode_mailer 不返回错误但未发送电子邮件
【发布时间】:2011-06-04 02:47:10
【问题描述】:

我不太清楚这个...我有一个与我在同一个网络上托管的 SMTP 服务器,我可以 ping 它并尝试发送电子邮件,但实际的电子邮件永远不会通过。我正在使用node_mailer...在回调期间没有返回错误...服务器上没有身份验证,因为它仅在内部使用,我不确定这是否可能是问题的一部分。它通过 ASP 工作,但我想让它与 Node.js 一起工作

我的脚本基本上就是这样的:

email.send({
  host : "theaddressoftheserver(can ping)",
  port : "25",         
  domain : "theaddressoftheserver(can ping)",
  to : "Some@internalEmail.com",
  from : "Some@internalEmail.com",
  subject : "Test",
  body: "Test"
},
function(err, result){
  if(err) console.log(err);
  else console.log("Appears to have sent...");
});

【问题讨论】:

  • 你检查过网络上发生了什么吗? Wireshark 等……
  • PartlyCloudy:很遗憾,我无权访问其中的任何内容...我只知道它可以与 ASP 一起使用。这让我认为它是 node_mailer,而不是实际的服务器。

标签: javascript node.js


【解决方案1】:

我建议你使用Postmark

邮戳可帮助小型和大型 Web 应用程序发送和跟踪交易电子邮件。不再担心设置、交付和服务器维护。我们已经在这方面表现出色了。

Node.js 已经有两个 Postmark 库。

示例

var postmark = require("postmark")("YOURAPIKEY");

postmark.send({
    "From": "donotreply@example.com", 
    "To": "target@example.us", 
    "Subject": "Test", 
    "TextBody": "Test Message"
});

【讨论】:

    【解决方案2】:

    我最近回答了一个类似的问题,它可能对你有所帮助:

    https://stackoverflow.com/a/12623787/340736

    不幸的是,很难确切地知道您的问题出在哪里。 ASP 脚本是否在同一台服务器上?您是否尝试过针对服务器和sending it manually 运行 telnet? Node进程有防火墙限制吗?

    想到的一件事是,如果您说您的 ASP 脚本有效,并且您的 SMTP 服务器不使用身份验证。但它可能就是这样,它正在冒充您的用户(运行 ASP 进程的用户)并使用该用户进行身份验证(AD 身份验证)..

    只是一个疯狂的猜测。

    【讨论】:

      【解决方案3】:

      我认为 node_mailer 从 gmail 帐户发送电子邮件。我用了代码,

      const transporter = createTransport({
        service: gmail,
        auth: {
          user: process.env.MAILADDRESS,
          pass: process.env.MAILPASSWORD
        }
      });
      
      let mailOptions = {
           from: process.env.MAILADDRESS,
           to: recipient@email.com,
           subject: 'verification code for verify email',
           text: 'verification code
         }
      
         transporter.sendMail(mailOptions, function(err, info){
          if (err) {
            // something
      
          } else {
            // something
          }
        })
      

      这很简单。为了完成这项工作,我必须在使用该电子邮件之前确保 Gmail 帐户的 Less secure app access 已打开。我说的是我用来发送电子邮件的电子邮件。 (发件人的电子邮件)。

      所以我的意思是,如果托管在同一网络上的 SMTP 服务器中有任何安全选项,则需要将其关闭,以便 node_mailer 使用电子邮件地址。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-10-27
        • 2017-07-02
        • 2014-06-26
        • 1970-01-01
        • 1970-01-01
        • 2014-09-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多