【问题标题】:How to send user all details on email after user are update account in Drupal 7用户在 Drupal 7 中更新帐户后如何通过电子邮件向用户发送所有详细信息
【发布时间】:2018-06-28 08:48:18
【问题描述】:

目前,我想在用户在 Drupal 7 中更新帐户后通过电子邮件向用户发送所有详细信息。

我能够成功地向用户发送其他详细信息,但我无法发送密码。

我正在使用 drupal 规则和操作发送所有详细信息。我试图在正文上添加 [user:password],但密码仍然为空。

我已经发送了所有这样的细节:

Your Updated Name : [account:name]
Your unique id : [account:uid]
Your Roles : [account:roles]
Your Password is  [account:password] 

请建议我在正文上写什么作为密码。

如果我永远不应该通过电子邮件发送密码,并且如果不可能,我可以发送链接以重置他们的密码。

我想知道我们如何做到这一点,这样每个人都会收到一封包含新密码的电子邮件 - 或一封重置密码的电子邮件。

让我知道哪一个是可能的以及如何?

【问题讨论】:

    标签: php email drupal drupal-7


    【解决方案1】:

    默认情况下,创建新帐户时 Drupal 不会创建密码,因此您无法在注册电子邮件中发送密码,但您可以发送一次性链接,允许用户“激活”他们的帐户并设置他们的密码。

    在这种情况下,您的一次性 url 令牌是:[user:one-time-login-url]

    【讨论】:

    【解决方案2】:

    您无法从数据库中获取密码,因为它不是以纯值形式存储的。相反,密码被散列(转换为一些散列码),这是一种方式操作。您无法从该哈希字符串中取回密码。

    此外,由于存在安全风险,在电子邮件中发送密码也不是很明智。

    但是,如果用户刚刚更改了密码(提交了包含密码值的表单),您可能能够获取密码(并发送它)。如果这确实是您想要做的尝试为用户更新表单创建表单处理程序。然后挂钩它,这样您的表单处理程序将被调用,您可以获取提交的数据,包括密码并从那里发送电子邮件。

    代码应如下所示:

    /**
     * Implementation of hook_form().
     */
    function mymodule_form_page_node_form_alter(&$form, &$form_state) { 
        $form['buttons']['Change a taxonomy value and save'] = Array (
            '#type' => 'submit',
            '#value' => t('Change a taxonomy value and save'),
            '#weight' => 4,
            '#submit' => Array('_mymodule_change_page_taxonomy_value_submit', 'node_form_submit')
        );
    }
    
    /**
     * Function to perform changes to the taxonomy field before page is saved
     */
    function _mymodule_change_page_taxonomy_value_submit($form, &$form_state) { 
        // Change the taxonomy value to whatever it is meant to be
        $mynewtaxonomyvalue = [taxonomyobjectfromsomewhere]; 
        $form_state['values']['taxonomy'][5] = $mynewtaxonomyvalue->tid;
    }
    

    从这里复制的示例:https://www.drupal.org/forum/support/module-development-and-code-questions/2010-01-29/adding-custom-submit-handlers-to-a#comment-3873354

    但首先检查一下,当用户使用规则更改密码时,也许该密码令牌也可用,因此您不必编码。

    【讨论】:

      【解决方案3】:

      我找到了我的问题答案并且它成功地工作了。 现在我已成功将重置密码的链接发送给用户。

      • 安装Mass Password Reset模块并激活模块。
      • 然后打开人员并单击 MASS PASSWORD RESET 和通知用户 通过电子邮件重置密码的次数
      • 然后重置密码,如下图所示

      更多详情:https://www.youtube.com/watch?v=7KpVa9Luzq8

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-24
        • 2016-04-05
        • 1970-01-01
        • 2012-04-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多