emailService SendEmail不起作用Nodemailer

时间:2019-03-21 09:48:17

标签: angular backend nodemailer

提交表单后,我用了这个等待时间向审阅者发送电子邮件,但即使console.log提示通过该方法,看来还是无法解决问题

test.services.ts

    async send(
    candidateId: number,
    entity: TestDto,
    email?: { title: string; content: string },
  ) {
    return db.sequelize.transaction(async transaction => {
      const instance = await db.Candidate.findById(candidateId, {
        rejectOnEmpty: true,
      });
      const testInstance = await instance.createTest(entity, {
        fields: ['name', 'reviewerId', 'candidateId'],
      });
      const reviewerRole = await db.Role.findOne({
        where: { name: 'test-reviewer' },
      });
      await db.EmployeeHasRole.bulkCreate(
        [{ employeeId: entity.reviewerId, roleId: reviewerRole.id }],
        {
          updateOnDuplicate: ['roleId', 'employeeId'],
        },
      );


      // Test value
      email = {
        title: 'hihi',
        content: 'hehehe'
      }

      if(email) { // email is undefined**
        console.log('begin');
        const reviewer = await testInstance.getReviewer(); // Get reviewer information
        this.emailService.sendEmail({
          receiver: reviewer.email,
          content: email.content,
          subject: email.title,
        }).then(() => console.log('done done'), (err) => console.log(err, 'not done')); // Prompt done done -> work
      }
      return testInstance;
    });
  }

第一次,电子邮件是未定义的,因此我为其指定了测试值,甚至将reviewer.email更改为我的电子邮件“ xxxxx@gmail.com”

test.controller.ts

@Post()
  @Permission('arrange-interview:candidate/interview')
  send(
    @Param('candidateId', new ParseIntPipe()) candidateId: number,
    @Body(new ValidationPipe({ transform: true, whitelist: true }))
    entity: TestDto,
    @Body('email') email: { title: string; content: string },
  ) {
    return this.testService.send(candidateId, entity, email);
  }

0 个答案:

没有答案