当Email.send工作时,Meteor帐户失败了,为什么?

时间:2015-02-19 23:31:00

标签: gmail meteor-accounts

我们有一个Meteor应用程序正在准备部署,我们终于将它连接到gmail帐户以发送电子邮件。电子邮件配置设置为

Meteor.startup(function () {
  smtp = {
  username: 'noreply@cloaklabs.com',
  password: 'abcdabcdabcdabcd', // masked - a gmail application-specific 16 character password to use for two-factor auth
  server:   'smtp.gmail.com',
  port: 587 // also tried 465 to no avail
  };
  process.env.MAIL_URL = 'smtp://' + encodeURIComponent(smtp.username) + ':' + encodeURIComponent(smtp.password) + '@' + encodeURIComponent(smtp.server) + ':' + smtp.port;
});

当应用程序直接调用Email.send(...)时,电子邮件将成功发送。

但是当我们这样做时:

Accounts.createUser({email: email, password: password, profile: profile},function(err){...})

我们在服务器日志中获得以下回溯:

Exception while invoking method 'createUser' SenderError: Mail from command failed - 555 5.5.2 Syntax error. ba12sm12306756pac.23 - gsmtp
at Object.Future.wait (/Users/Michel/.meteor/packages/meteor-tool/.1.0.40.1wbeh3b++os.osx.x86_64+web.browser+web.cordova/meteor-tool-os.osx.x86_64/dev_bundle/server-lib/node_modules/fibers/future.js:326:15)
at smtpSend (packages/email/email.js:91:1)
at Object.Email.send (packages/email/email.js:168:1)
at Object.Accounts.sendVerificationEmail (packages/accounts-password/password_server.js:602:1)
at Meteor.methods.createUser (packages/accounts-password/password_server.js:723:1)
at tryLoginMethod (packages/accounts-base/accounts_server.js:186:1)
at Object.Accounts._loginMethod (packages/accounts-base/accounts_server.js:302:1)
at [object Object].Meteor.methods.createUser (packages/accounts-password/password_server.js:699:1)
... traceback truncated

这感觉就像一个bug。关于SO的相关问题,尽可能接近555 5.5.2 Syntax error. gmail's smtp建议使用

"name <emailAddress>"
对于收件人的地址,

而不仅仅是“emailAddress”,但是无法通过Accounts.createUser()推送此语法,并且无论如何,Email.send()都可以在没有复杂性的情况下工作。

1 个答案:

答案 0 :(得分:0)

这是愚蠢的:它只是一个分散的&gt; Accounts.emailTemplates.from上的字符。不得不使用节点检查器调试Meteor的email.js以最终找到它,但它现在正在工作。