我正在创建没有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
答案 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)