Уведомление об успешном обращении к метеору

Я использую Bert и Meteor Email. В моих MEteor MEthods я возвращаю успех отправки электронной почты. Проблема в том, что после отправки электронного письма, оно не возвращает сообщение об успехе.

вот мой пример кода,

Meteor.call('sendEmail',
                data.eadd,
                'e@gmail.com',
                'Invitation',
                'test');

            return "successful.";

Вот моя функция sendEmail,

sendEmail(to, from, subject, text) {
    check([to, from, subject, text], [String]);
    this.unblock();
    Email.send({
        to: to,
        from: from,
        subject: subject,
        text: text
    });
}

1 ответ

Ваш Meteor.call() необходимо включить обратный вызов и ваш sendEmail функция должна вернуть значение. Переставьте ваш код следующим образом:

Meteor.call('sendEmail',data.eadd,'e@gmail.com','Invitation','test',(err,result)=>{
  if (err) Bert.alert({ title: 'Error sending email: '+err, type: 'danger' });
  else Bert.alert({ title: 'Email sent!', type: 'success' })
});

sendEmail(to, from, subject, text) {
  check([to, from, subject, text], [String]);
  this.unblock();
  Email.send({
    to: to,
    from: from,
    subject: subject,
    text: text
  });
  return "successful.";  
}

Примечание: из безопасности я не рекомендую такой метод, когда вся электронная почта может быть указана на клиенте, так как вы в основном создали открытое реле электронной почты с возможностью сценариев, которое может даже запускаться анонимным пользователем.

Другие вопросы по тегам