繁体   English   中英

SMTP服务器出现错误。 邮件未在Meteor App中发送

[英]SMTP server giving error. Mails not being sent in Meteor App

我正在阅读《流星在行动》一书,并且正在制作一个简单的应用程序,该应用程序要求SMTP服务器能够在注册时发送电子邮件验证。

我遵循了所有步骤,但似乎不正确。 正在创建用户,但未发送验证邮件,实际上,正在引发错误:

I20150128-16:16:53.221(5.5)? Exception in setTimeout callback: Error: connect ETIMEDOUT
I20150128-16:16:53.225(5.5)?     at Object.Future.wait (/Users/niranjan/.meteor/packages/meteor-tool/.1.0.40.i0mc94++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)
I20150128-16:16:53.225(5.5)?     at smtpSend (packages/email/email.js:91:1)
I20150128-16:16:53.226(5.5)?     at Object.Email.send (packages/email/email.js:168:1)
I20150128-16:16:53.226(5.5)?     at Object.Accounts.sendVerificationEmail (packages/accounts-password/password_server.js:602:1)
I20150128-16:16:53.226(5.5)?     at app/server/server.js:10:16
I20150128-16:16:53.227(5.5)?     at [object Object]._.extend.withValue (packages/meteor/dynamics_nodejs.js:56:1)
I20150128-16:16:53.227(5.5)?     at packages/meteor/timers.js:6:1
I20150128-16:16:53.227(5.5)?     at runWithEnvironment (packages/meteor/dynamics_nodejs.js:108:1)
I20150128-16:16:53.227(5.5)?     - - - - -
I20150128-16:16:53.227(5.5)?     at errnoException (net.js:904:11)
I20150128-16:16:53.228(5.5)?     at Object.afterConnect [as oncomplete] (net.js:895:19)

我一直在尝试调试它,但似乎无法弄清楚发生了什么。

以下是相关代码-client / templates.html:

  Accounts.onCreateUser(function (options, user) {
      if (options.profile) {
        user.profile = options.profile;
      } else {
        user.profile = "White belt";
      }
      user.profile.rank = "White belt";
      if(options.email) {
        Meteor.setTimeout(function () {
          Accounts.sendVerificationEmail(user._id);  // I think this is the error source
        }, 2 * 1000 );
      }
      return user;
    });

服务器/smtp.js:

Meteor.startup(function () {
  smtp = {
    username: 'myemail@gmail.com',
    password: 'mysecretpassword',
    servre: 'smtp.gmail.com',
    port: 587
  };
  process.env.MAIL_URL = 'smtp://' + 
      encodeURIComponent(smtp.username) + ':' + 
      encodeURIComponent(smtp.password) + '@' +
      encodeURIComponent(smtp.server) + ':' +
      smtp.port;
});

Accounts.emailTemplates.siteName = "Meteor in Action userApp";
Accounts.emailTemplates.from = "Name <myemail@gmail.com>";

Accounts.emailTemplates.verifyEmail.subject = function (user) {
  return 'Confirm your email address, ' + user.username;
};

Accounts.emailTemplates.verifyEmail.text = function (user, url) {
  return 'Welcome to the Meteor in Action userApp! \n'
    + 'To veryify - \n' + url;
};

Accounts.emailTemplates.verifyEmail.html = function (user, url) {
  return "<h1>Welcome to the Meteor in Action userApp! </h1>"
    + "<p>To verify - </p>" + url;
};

我的朋友,问题出在您拼错了世界服务器的server/smtp.js文件中。 因此smtp对象没有任何称为server属性。 您定义为servre

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM