Запутался, как настроить электронную почту подтверждения метеора - PullRequest
0 голосов
/ 21 сентября 2018

Как мне получить ссылку для проверки из метода Meteor по умолчанию в свой собственный метод электронной почты, который использует sendgrid stmp.

вот метод проверки метеора, который хорошо работает сам по себе и имеет ссылку, которую я хочу:

sendVerificationLink() {
 let userId = Meteor.userId();
   if ( userId ) {
     return Accounts.sendVerificationEmail( userId );
    }
  },

Вот мой пользовательский метод, который использует sendgrid, все работает, за исключением того, что я не могу понятьузнать, как получить ссылку с пользовательским токеном:

'signupEmail' (submission) {
   this.unblock();
   const link = ''
   const message = `welcome ${submission.firstname} `
   const text = `welcome ${submission.firstname}. Please verify your 
   account ${link}`
   Email.send({
     from: "hi@test.com",
     to: submission.email,
     subject: message,
     text: text,
      html: text,
    });
} 

1 Ответ

0 голосов
/ 21 сентября 2018

На всякий случай, если кто-то ищет это в будущем, я нашел ответ на форумах Meteor: https://forums.meteor.com/t/how-to-get-verification-link-for-custom-sent-verification-email/22932/2

По сути, я добавил запись токена и сохранил ее в базе данных.Затем использовал токен с методом: Accounts.urls.verifyEmail, который создал ссылку для вставки в электронное письмо.

Вот мой последний метод:

'signupEmail' (submission) {
    this.unblock();
    let userId = Meteor.userId();
    var tokenRecord = {
      token: Random.secret(),
      address: submission.email,
      when: new Date()};

      Meteor.users.update(
        {_id: userId},
        {$push: {'services.email.verificationTokens': tokenRecord}}
      );
      const verifyEmailUrl = Accounts.urls.verifyEmail(tokenRecord.token);

      const message = `welcome ${submission.firstname} `
      const text = `welcome ${submission.firstname}. Please verify your account ${verifyEmailUrl}`
      Email.send({
        from: "hi@test.com",
        to: submission.email,
        subject: message,
        text: text,
        html: text,
      });
  },
...