如何在重置密码email meteor中将ip从主题更改为当前url

时间:2016-08-04 09:29:10

标签: meteor email-templates

我使用以下代码设置我的重置电子邮件主题:

Accounts.emailTemplates.resetPassword.subject = function(user, url) {
    var ul = Meteor.absoluteUrl();

    var myArray = ul.split("//");
    var array = myArray[1].split('/');

    return "How to reset your password on "+array[0];
};

我希望它包含当前浏览器的网址,但它没有发生。

这就是主题的样子

  

如何在139.59.9.214重置密码

但理想的结果是:

  

如何在someName.com上重置密码

其中someName.com是我的网址。

1 个答案:

答案 0 :(得分:0)

我建议稍微处理一下这个问题。您的主机名与您的环境相关联,并且根据您的生产环境的样子,从服务器获取主机名可能并不总是最简单的事情(特别是如果您落后于代理,负载平衡器等)。您可以考虑利用Meteor的Meteor.settings功能,并为每个环境创建一个具有匹配主机名设置的设置文件。例如:

1)创建一个settings_local.json文件,其中包含以下内容:

{
  "private": {
    "hostname": "localhost:3000"
  }
}

2)创建一个settings.json文件,其中包含以下内容:

{
  "private": {
    "hostname": "somename.com"
  }
}

3)将代码调整为:

Accounts.emailTemplates.resetPassword.subject = function (user, url) {
  const hostname = Meteor.settings.private.hostname;
  return `How to reset your password on ${hostname}`;
};

4)在本地工作时,启动流星如:

meteor --settings=settings_local.json

5)部署到生产环境时,请确保考虑内容或settings.json文件。如何执行此操作取决于您如何部署到您的prod环境。例如,如果使用mup,它会自动查找要在生产中使用的settings.json。 MDG的Galaxy也会这样做。