【问题标题】:IBM Cloud Foundry firewall blocking SMTP connection (nodemailer)IBM Cloud Foundry 防火墙阻止 SMTP 连接 (nodemailer)
【发布时间】:2021-08-29 13:52:27
【问题描述】:

我的项目使用 Nodemailer 从服务器发送服务电子邮件。该代码在我的本地环境中运行良好,但是当部署到 Cloud Foundry 时,它在电子邮件发送连接上超时。

在应用容器中使用 SSH,curl google.com 有效,但 curl --ssl smtp://smtp.email.uk-london-1.oci.oraclecloud.com 无效并超时。

我可以在哪里以及如何配置此网络访问?

/sendEmail.ts

export async function sendEmail(toEmail): Promise<<SMTPTransport.SentMessageInfo> {
    const transporter = nodemailer.createTransport({
        host: ENDPOINTS.smtp.endpoint,
        port: ENDPOINTS.smtp.port,
        secure: false,
        requireTLS: true,
        auth: {
            user: ENDPOINTS.smtp.credentials.id,
            pass: ENDPOINTS.smtp.credentials.pass
        }
    });


    return 
          await transporter.sendMail({
              from: ...,
              to: toEmail,
              subject: ...
              text: ...,
              html: ...
          })
}

const ENDPOINTS = {
   smtp: {
        endpoint: 'smtp.email.uk-london-1.oci.oraclecloud.com',
        port: 25,
        from: 'accounts-noreply@example.com',
        credentials: {
            id: ...,
            pass: ...
        }
    }
}

【问题讨论】:

  • 显示实际的代码行和使用的端口。我也在使用 nodemailer 来处理一些基于 IBM Cloud 的电子邮件。
  • @data_henrik 代码已添加。端口是 25。
  • 尝试端口 587 而不是 25
  • @data_henrik 我不敢相信它可以修复它,为什么它会有所作为?它确实有效,但我无法理解为什么

标签: ibm-cloud cloud-foundry


【解决方案1】:

无法使用端口 25 的原因是大多数云提供商都阻止了对它的访问。

原因是 25 未经身份验证,并且经常被垃圾邮件发送者滥用。大多数电子邮件提供商为已知的垃圾邮件发起 IP 地址维护Email Reputation System。因此,如果您是云提供商您不会希望成为每个人都列入黑名单的人。

TCP 端口 587 用于经过身份验证的 SMTP 访问,因此对于需要发送欺骗性邮件的垃圾邮件发送者来说,它的用处不大。

如果您有更高级别/企业级的订阅,大多数云提供商仍允许您发送超过 25 岁的电子邮件。

有用的链接:

【讨论】:

    【解决方案2】:

    尝试使用端口 587 而不是端口 25。通常,SMTP 使用端口 25 进行未加密传输,端口 587 用于基于 SSL/TLS 的加密传输。通常,25 端口会因为频繁的误用而被阻塞。

    对于我的项目,我一般都懒得用25端口,直接试试587吧。

    【讨论】:

    • 那么这是该传出端口上的云铸造块吗?还是一些 IBM Cloud 网络规则?无论哪种方式,它都可以配置吗?只是为了背景知识。谢谢!
    • 不知道上面有没有 IBM Cloud CF 块。但如果是,它正在跟随许多提供商阻止垃圾邮件(尝试)。
    • 供其他人参考,这可能与它有关:cloud.ibm.com/docs/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-13
    • 2019-04-07
    • 2014-10-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多