2016-10-05 92 views
0

我试图在注册时向用户发送验证电子邮件。我正在使用Accounts.createUser将用户添加到数据库,并且在没有任何电子邮件验证系统的情况下工作正常。当我尝试使用Accounts.sendVerificationEmail进行电子邮件验证时,它不会发送任何电子邮件。我已经设置了MAIL_URL,我正在使用Mailgun。当我尝试在终端内发送电子邮件时,它按预期发送。我曾尝试使用此处提供的过程:https://themeteorchef.com/snippets/sign-up-with-email-verification/其中方法是服务器端,然后我使用Meteor.call来调用该方法,但未发送验证电子邮件。我也尝试过执行Accounts.onCreateUser()并从内部拨打Accounts.sendVerificationEmail(user._id),但那也不是发送电子邮件。验证流星应用程序中的电子邮件

在我的服务器代码,我中启动功能如下:Accounts.config({sendVerificationEmail: true, forbidClientAccountCreation: false});我也注意到,当我加入任何形式的电子邮件验证码服务器端,createUser失败,并告诉我的用户名没有被定义,但作品没有任何电子邮件验证,100%如预期。

这里有一些链接到各种来源我一直在努力,才能使用得到这个工作: verify email using accounts.ui package

https://themeteorchef.com/snippets/sign-up-with-email-verification/

Meteor 1.3 verify email when creating user

我也一直在使用流星文档,但我似乎无法得到它的工作。我还安装了相关的软件包(电子邮件,帐户,帐户 - 用户界面)。任何帮助表示赞赏!

+0

你是从客户端调用 “Accounts.sendVerificationEmail(user._id)”? –

+0

@PankajJatav不,我按照以下链接设置:https://themeteorchef.com/snippets/sign-up-with-email-verification/,因为在流星文档中'Accounts.sendVerificationEmail()'是一个服务器侧功能。我使用'Meteor.call'然后调用服务器端方法。 –

+0

您是否在服务器控制台上发生错误? –

回答

0

感谢@PankajJatav让我更仔细地阅读服务器控制台!对我来说问题是我使用mailgun作为我的smtp服务。在尝试实现我的电子邮件验证系统时,我使用了默认的沙箱域,但沙箱域仅用于测试目的。为了真正收到邮件,我不得不去邮件枪并作为授权收件人加入收件人。如果你从一开始就用自己的域名设置mailgun,这应该不成问题。

再次感谢您@PankajJatav

+0

你的欢迎我的朋友:) –