【发布时间】: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 我不敢相信它可以修复它,为什么它会有所作为?它确实有效,但我无法理解为什么