Hapi 中没有域的 Nodemailer 返回需要域错误当代码在 Hapi 之外运行时,它运行得很好

问题描述

我目前正在编写一个简单的 nodejs 应用程序。其中一项功能是使用 hapi 和 nodemailer 通过 cron 作业发送电子邮件

该应用程序使用传输器成功运行,例如

            const transporter = nodemailer.createTransport({
                host: mail.somesmtpserver.com,port: 587,auth: {
                    user: name@example.com,pass: somepassword
                }
            })

我目前正在尝试使用 smtp2go 使其工作,我首先在 Hapi 服务器之外尝试使用 user 作为没有域的“某些用户名”。它工作得很好,smtp2go 记录了发送的电子邮件

我尝试将相同的代码放入 Hapi 中,它返回

(node:3211) UnhandledPromiseRejectionWarning: Error: Mail command Failed: 501 <some-username>: sender address must contain a domain

我尝试将发件人代码放在异步函数中,然后使用 await 调用它们,但仍然没有用

关于我应该如何编写此代码的任何想法?提前致谢!

解决方法

显然,在 sendEmail 函数中,我将其添加为


                let mailOptions = transporter.sendMail({
                    from: `application email <${process.env.MAIL_DOMAIN}>`,to: `${process.env.EMAIL_RECEIVER}`,subject: `Email Subject`,html: htmlToSend
                })

如果我的 MAIL_DOMAIN 设置为 SMTP 服务器的用户名(不是电子邮件),这将不起作用。测试文件使用了硬编码的电子邮件名称!

我通过将其更改为电子邮件域来解决此问题,因为它允许我从“不存在”的电子邮件发送!