首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法使用nestjs和nodemailer发送电子邮件

无法使用nestjs和nodemailer发送电子邮件
EN

Stack Overflow用户
提问于 2021-02-24 18:52:32
回答 1查看 2.5K关注 0票数 0

我尝试使用nodemailer和nestjs从服务器发送电子邮件。

下面是模块配置

代码语言:javascript
运行
复制
import { Module } from "@nestjs/common";
import { MailService } from "./services/mail/mail.service";
import { MailController } from "./controllers/mail/mail.controller";
import { MailerModule } from "@nestjs-modules/mailer";

@Module({
    controllers: [MailController],
    providers: [MailService],
    imports: [
        MailerModule.forRoot({
            transport: {
                host: process.env.EMAIL_HOST,
                port: process.env.EMAIL_PORT,
                secure: true,
                auth: {
                    user: process.env.EMAIL_ID,
                    pass: process.env.EMAIL_PASS
                }
            }
        })
    ]
})
export class MailModule {
}

以及该方法

代码语言:javascript
运行
复制
@import { MailerService } from "@nestjs-modules/mailer";

constructor(private mailer: MailerService) {
}

async sendConfirmationLetter(to: string): Promise<void> {
        try {
            await this.mailer.sendMail({
                to: 'to',
                from: 'from',
                subject: 'subject',
                text: 'some text'
            });
        } catch (e) {
            console.log(e);
        }
    }

但我有个例外

代码语言:javascript
运行
复制
Error: connect ECONNREFUSED 127.0.0.1:465
    at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1139:16) {
  errno: -4078,
  code: 'ESOCKET',
  syscall: 'connect',
  address: '127.0.0.1',
  port: 465,
  command: 'CONN'
}

我做错了什么?所有信息均取自documentation https://nest-modules.github.io/mailer/docs/mailer.html

求求你救命!

如果有些信息还不够,我可以提供。

EN

回答 1

Stack Overflow用户

发布于 2021-05-12 20:10:17

代码语言:javascript
运行
复制
MailerModule.forRoot({
   transport: {
        host: process.env.EMAIL_HOST, // change to your email smtp server like www.example.com
        port: process.env.EMAIL_PORT, // change to configured tls port for smtp server
        secure: true,
        auth: {
            user: process.env.EMAIL_ID,
            pass: process.env.EMAIL_PASS
        }
    }
})

您正在使用您的主机和端口作为smtp服务器,如果您在同一实例上设置smtp,它显示是好的,但我不认为它是相同的端口和主机也应该是域。

如果您计划使用gmail smtp,则设置应为

代码语言:javascript
运行
复制
MailerModule.forRoot({
   transport: {
        host: "smtp.gmail.com",
        port: "465",
        secure: true,
        auth: {
            user: "your_gmail_email",
            pass: "your_gmail_app_password"
        }
    }
})
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66349376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档