Meteorjs Accounts.config sendVerificationEmail选项没有任何效果

时间:2015-02-07 05:29:33

标签: meteor-accounts meteor

我正在创建没有accounts.ui包的帐户,只需使用accounts-base / accounts-password。我在server方面有一个代码

Accounts.config({
  sendVerificationEmail: true,
  forbidClientAccountCreation: true // cause we call it from server code
});

然后在注册表单提交时我打电话

Accounts.createUser({User account document where `email` field is set to actual email}); 

它创建用户(我可以稍后使用此用户登录),没有任何问题或错误,除了它不向我发送任何电子邮件。

我安装了meteor电子邮件包,但我没有配置电子邮件URL,因此它应该在标准输出中打印不会发生的消息。

我可以使用post user create hook并手动发送电子邮件,但我认为如果没有文档中所述的额外工作,它应该可以正常工作。

Meteor版本是1.0.3.1

2 个答案:

答案 0 :(得分:1)

我面临着同样的问题,但是它可以在我拥有的另一个项目中工作。 有一种使用钩子(https://github.com/Meteor-Community-Packages/meteor-collection-hooks)的解决方法。

使用meteor add matb33:collection-hooks

添加软件包

然后将其导入服务器端import { CollectionHooks } from 'meteor/matb33:collection-hooks';

最后,您可以在Meteor.starup中添加以下代码:

Meteor.users.after.insert((userId, doc) => {
    Accounts.sendVerificationEmail(doc._id);
});

我还尝试过在Accounts.onCreateUser上发送电子邮件验证,但是,似乎该用户尚未存储在数据库中,因此失败了。

使用流星1.8.3。

更新:阅读代码后,我发现sendVerificationEmail仅在用户在客户端注册时才有效(这不是您的情况,也不是我的情况,因为我们俩都禁止这样做)。 / p>

您可以检查account_commons.js并检查是否对此有评论:

// - sendVerificationEmail {Boolean}
//     Send email address verification emails to new users created from
//     client signups.

现在您可以继续使用钩子了。

答案 1 :(得分:0)

按照这个步骤进行操作应该让你前进:

https://gentlenode.com/journal/meteor-20-verify-an-email-with-meteor-accounts/42