You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Node.js服务中使用Nodemailer通过DreamHost发送邮件

问题根因与修复方案

你遇到的两个错误分别由两个配置错误导致,按以下步骤修改即可修复:

1. 修复认证失败(535错误)

你在配置auth参数时,手动对账号密码执行了encodeURIComponent编码,Nodemailer内部会自动处理SMTP认证的编码逻辑,手动编码会导致实际提交给SMTP服务器的账号密码和真实值不符,直接触发认证失败。
直接删除encodeURIComponent包裹即可,修改后的传输器配置如下:

var transport = createTransport({
  host: "smtp.dreamhost.com",
  port: 465,
  auth: {
    user: process.env.PROD_MAIL_USER,
    pass: process.env.PROD_MAIL_PASS,
  },
  secure: true,
});

2. 修复域名解析失败(ENOTFOUND错误)

ssl://前缀是PHP类库的特殊配置要求,Nodemailer的host字段仅需要填写纯域名,secure: true配置已经默认开启SSL加密,无需额外添加协议前缀。加了前缀后会被Nodemailer当成域名的一部分去做DNS解析,自然会报地址找不到的错误。

可选验证项

如果修改后还有问题,可以依次排查以下点:

  • 确认环境变量PROD_MAIL_USER的值是完整的邮箱地址(格式为xxx@你的域名.com,不是仅前缀部分)
  • 确认你使用的DreamHost邮箱已开通超过15分钟,后台状态为正常激活
  • 确认邮箱密码的环境变量配置时没有多余的包裹引号,避免实际取值带额外符号
  • 确认DreamHost后台没有对该邮箱开启SMTP登录限制

内容的提问来源于stack exchange,提问作者ztrat4dkyle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 06:06:04