IBM Cloud Foundry 防火墙阻止 SMTP 连接 (nodemailer)
IBM Cloud Foundry firewall blocking SMTP connection (nodemailer)
我的项目使用 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: ...
}
}
}
尝试端口 587 而不是端口 25。通常,SMTP 使用端口 25 进行未加密传输,端口 587 用于 SSL/TLS-based 加密传输。经常是25端口因为经常被误操作而被封
对于我的项目,我通常连25端口都懒得用,而是直接尝试587。
无法使用端口 25 的原因是因为大多数云提供商都阻止访问它。
原因是 25 未经身份验证,经常被垃圾邮件发送者滥用。大多数电子邮件提供商维护 Email Reputation System 已知的垃圾邮件来源 IP 地址。因此,如果您是云提供商,您不会想成为每个人都列入黑名单的人。
TCP 端口 587 用于经过身份验证的 SMTP 访问,因此对于需要发送欺骗性邮件的垃圾邮件发送者来说用处不大。
如果您订阅了 higher/enterprise,大多数云提供商仍然允许您发送 25 岁以上的电子邮件。
有用的链接:
我的项目使用 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: ...
}
}
}
尝试端口 587 而不是端口 25。通常,SMTP 使用端口 25 进行未加密传输,端口 587 用于 SSL/TLS-based 加密传输。经常是25端口因为经常被误操作而被封
对于我的项目,我通常连25端口都懒得用,而是直接尝试587。
无法使用端口 25 的原因是因为大多数云提供商都阻止访问它。
原因是 25 未经身份验证,经常被垃圾邮件发送者滥用。大多数电子邮件提供商维护 Email Reputation System 已知的垃圾邮件来源 IP 地址。因此,如果您是云提供商,您不会想成为每个人都列入黑名单的人。
TCP 端口 587 用于经过身份验证的 SMTP 访问,因此对于需要发送欺骗性邮件的垃圾邮件发送者来说用处不大。
如果您订阅了 higher/enterprise,大多数云提供商仍然允许您发送 25 岁以上的电子邮件。
有用的链接: