为什么定制的Meteor帐号验证邮件没有显示为Html?

以下是imports/api/friends/methods.js中的代码:

import {Meteor} from "meteor/meteor";
import {Accounts} from "meteor/accounts-base";

if (Meteor.isServer) {

    Accounts.emailTemplates.siteName = "....";
    Accounts.emailTemplates.from = "example01  <example01@gmail.com>";
    Accounts.emailTemplates.verifyEmail.from  = function () {
        return "example01  <example01@gmail.com>";
    };
    Accounts.emailTemplates.verifyEmail.text = function(user, url) {
        return '<h1>Thank you for your registration.</h1><br/><a href="' + url + '">Verify eMail</a>';
    };

}

结果如下:

如您所见,Gmail采用了这种格式。我们可以使用<h1><br>这两个HTML标记。

它们为什么不显示为HTML?


解决方案

您使用了错误的函数。如果使用Accounts.emailTemplates.verifyEmail.text,则正文将以文本形式返回,而不是以HTML形式返回。因此,您应该使用Accounts.emailTemplates.verifyEmail.html

例如:

Accounts.emailTemplates.verifyEmail.html = function(user, url) {
    /* Return your HTML code here: */
    return '<h1>Thank you for your registration.</h1><br/><a href="' + url + '">Verify eMail</a>';
};

阅读有关Accounts.emailTemplates的详细信息。

相关文章