我正在尝试向注册后的用户发送验证邮件。我在前端使用angular作为前端,使用nodejs,mongoDb和回送。 这是我的html注册表格。

     <form class="form-signin" name="frm" role="form" accept-charset="UTF-8" novalidate>
     <fieldset>
        <input type="email" name="email" id="email" ng-model="profile.email" required>
        <input type="submit"  ng-submit value="Sign Up"   ng-click="register()">
    </fieldset>
  </form>

以下是寄存器控制器中的代码

    $scope.register = function() {
    $scope.profile.createTS = new Date();
    $scope.profile.username = $scope.profile.email;
    $scope.profile.id = uuid.v4();
    $scope.profile.created = new Date();
    $scope.profile.lastUpdated = new Date();
    AppUser.create($scope.profile,function() {
    $location.path('/login');

    }
   };

我在datasourses.json中添加了这些详细信息

    "emailDs": {
    "name": "emailDs",
    "connector": "mail",
    "transports": [{
     "type": "smtp",
     "host": "n1plcpnl0010.prod.ams1.secureserver.net",
     "secure": true,
     "port": 465,
     "tls": {
      "rejectUnauthorized": false
      },
    "auth": {
    "user":"support@mycompany.com",
    "pass": "password"
       }
     }]
    }

以及以下代码,我在app-user.js中添加了

    AppUser.afterRemote('create', function(context, AppUser) {
    console.log('> AppUser.afterRemote triggered');

    var options = {
    type: 'email',
    to: AppUser.email,
    from: 'support@mycompany.com',
    subject: 'Thanks for registering.',
     template: path.resolve(__dirname, '../../../telekha-web/app/views/login.html'),
   redirect: 'http://172.17.0.1:9000/login',
   user: AppUser
   };

   AppUser.verify(options, function(err, response) {
   if (err) {
     next(err);
     return;
   }

   console.log('> verification email sent:', response);
   context.res.render('response', {
    title: 'Signed up successfully',
    content: 'Please check your email and click on the verification link ' +
        'before logging in.',
    redirectTo: 'http://172.17.0.1:9000/login',
    redirectToLinkText: 'Log in'
  });

 });
 });

用户可以使用此代码进行注册。但是,验证邮件不会发送给用户。 我是否需要添加任何视图? 我还在model-config.js中添加了电子邮件实例

请帮忙!!

#1楼 票数:0

我通过以下设置使其工作:

model-config.json

  "Email":{
    "dataSource":"Email"
  }

datasources.json

"Email": {
    "name": "email",
    "defaultForType": "mail",
    "connector": "mail",
    "transports": [
      {
        "type": "SMTP",
        "host": "abc.com",
        "secureConnection": true,
        "port": 587,
        "auth": {
          "user": "mail@abc.com",
          "pass": "pass"
        }
      }
    ]
  }

有两点要指出:
1)尝试在datasources.json中使用port 587
2)尝试使用"Email"作为模型名称和数据源名称。 (而不是emailDs

我可以通过这种方式从本地服务器发送电子邮件(使用hMailServer和本教程: https ://www.hmailserver.com/documentation/latest/?page = howto_set_up_local)

  ask by user5499168 translate from so

未解决问题?本站智能推荐:

1回复

为Loopack中的一个角色禁用电子邮件验证

是否可以仅针对一个角色禁用电子邮件验证? 我有两个角色,管理员和移动。 我已经在模型配置文件中的用户扩展模型选项中设置了“ emailVerificationRequired”:true,因此现在所有用户都需要电子邮件验证。 请帮忙!
2回复

适用于多种类型用户的猫鼬模型

我正在使用MEAN堆栈为学生和教师建立一种社交网络。 学生拥有与老师之一不同的自己的帐户页面。 我为老师和学生提供了一个注册页面。 注册时,用户必须使用选择的html标签(学生或老师)选择帐户的“类型”, 我想有一个单一的模型来表示两种不同类型的用户(教师和学生),其中包
1回复

使用回送组件密码到内置模型中来设置回送中的用户角色

我正在尝试使用npm loopback-component-passport和基于条件的用户角色在回送中创建用户, 如果用户具有isAdmin:true属性, isAdmin:true他应具有admin角色 如果用户具有isAdmin:false属性, isAdmin:fals
2回复

在回送中查询mongodb文档

我试图查询子文档,但它引发以下错误。 错误:无法调用Project.find()。 尚未设置find方法。 PersistedModel尚未正确附加到数据源! 我只能在资源管理器中看到项目文档,我也想查看其子文档用户。 project.json { "nam
1回复

回送框架中的模型关系

我想在json文件之后建立两个模型之间的关系: 一个档案可以有一个测量员,作为关键,我想使用档案模型中的财产surveyor ,对应于测量员模型中的属性registrationNumber 。 我想查询档案模型并在档案doc中获取测量员数据: 或使用过滤器: 如果
1回复

回送+ mongoDB:找不到扩展的用户

我正在将Loopback 3.0与MongoDB连接器配合使用。 在某个地方公开的REST方法中,我需要访问当前登录的用户并对其进行一些更新。 我已经扩展了基本的User模型,将其称为appUser,登录有效,并且可以获得登录用户的令牌(在更改令牌模型以指向appUser之后)。 该模
1回复

回送用户模型实例没有实例方法

我正在从mongo数据库中获取用户,但是我所获得的该用户没有任何方法,也没有我期望的所有属性。 为什么会这样? 这是代码: 这是我模型的代码:
1回复

如何使用回送在mongodb中将数组中的json对象推送?

这是我的努力: 来自api Explorer的输入: 一切工作正常,但无法推送,而是覆盖了支付数组中的现有对象。 虽然从mongo shell可以正常工作。 请帮助我,我在哪里做错了? 谢谢。