用户在 Drupal 7 中更新帐户后如何通过电子邮件向用户发送所有详细信息
How to send user all details on email after user are update account in Drupal 7
目前,我想在用户更新 Drupal 7 帐户后通过电子邮件向用户发送所有详细信息。
我能够成功向用户发送其他详细信息,但我无法发送密码。
我正在使用 drupal 规则发送所有详细信息,action.I 试图在正文中添加 [user:password],但密码仍然为空。
我已经发送了所有详细信息:
Your Updated Name : [account:name]
Your unique id : [account:uid]
Your Roles : [account:roles]
Your Password is [account:password]
请建议我在密码正文上写什么。
如果我不应该通过电子邮件发送密码,如果不可能的话,我可以发送 link 来重置他们的密码。
我想知道我们如何才能让每个人都收到一封包含新密码的电子邮件或一封重置密码的电子邮件。
请告诉我哪一种可行以及如何实现?
默认情况下,Drupal 在创建新帐户时不会创建密码,因此您无法通过注册电子邮件发送密码,但您可以一次性发送 link,这样用户就可以 "activate"他们的帐户并设置他们的密码。
在这种情况下,您的一次性 url 令牌是:[user:one-time-login-url]
您无法从数据库中获取密码,因为它没有存储为明文值。相反,密码被散列(转换为一些散列码),这是一种单向操作。您无法从该哈希字符串取回密码。
此外,由于存在安全风险,通过电子邮件发送密码不是很明智。
但是,如果用户刚刚更改密码(提交包含密码值的表单),您可能能够获取(并发送)密码。如果这确实是您想要做的,请尝试为用户更新表单创建表单处理程序。然后挂钩它,这样你的表单处理程序就会被调用,你可以获得提交的数据,包括密码并从那里发送电子邮件。
代码应如下所示:
/**
* 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;
}
但首先检查一下,当用户使用规则更改密码时,也许该密码令牌也可用,因此您无需编码。
我找到了我的问题的答案并且它成功了。
现在我已经成功发送 link 给用户重设密码。
- 安装Mass Password Reset模块并激活模块。
- 然后打开 people 并点击 MASS PASSWORD RESET 和 Notify users
通过电子邮件重设密码的次数
- 然后像下面的截图一样重设密码
目前,我想在用户更新 Drupal 7 帐户后通过电子邮件向用户发送所有详细信息。
我能够成功向用户发送其他详细信息,但我无法发送密码。
我正在使用 drupal 规则发送所有详细信息,action.I 试图在正文中添加 [user:password],但密码仍然为空。
我已经发送了所有详细信息:
Your Updated Name : [account:name]
Your unique id : [account:uid]
Your Roles : [account:roles]
Your Password is [account:password]
请建议我在密码正文上写什么。
如果我不应该通过电子邮件发送密码,如果不可能的话,我可以发送 link 来重置他们的密码。
我想知道我们如何才能让每个人都收到一封包含新密码的电子邮件或一封重置密码的电子邮件。
请告诉我哪一种可行以及如何实现?
默认情况下,Drupal 在创建新帐户时不会创建密码,因此您无法通过注册电子邮件发送密码,但您可以一次性发送 link,这样用户就可以 "activate"他们的帐户并设置他们的密码。
在这种情况下,您的一次性 url 令牌是:[user:one-time-login-url]
您无法从数据库中获取密码,因为它没有存储为明文值。相反,密码被散列(转换为一些散列码),这是一种单向操作。您无法从该哈希字符串取回密码。
此外,由于存在安全风险,通过电子邮件发送密码不是很明智。
但是,如果用户刚刚更改密码(提交包含密码值的表单),您可能能够获取(并发送)密码。如果这确实是您想要做的,请尝试为用户更新表单创建表单处理程序。然后挂钩它,这样你的表单处理程序就会被调用,你可以获得提交的数据,包括密码并从那里发送电子邮件。
代码应如下所示:
/**
* 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;
}
但首先检查一下,当用户使用规则更改密码时,也许该密码令牌也可用,因此您无需编码。
我找到了我的问题的答案并且它成功了。 现在我已经成功发送 link 给用户重设密码。
- 安装Mass Password Reset模块并激活模块。
- 然后打开 people 并点击 MASS PASSWORD RESET 和 Notify users 通过电子邮件重设密码的次数
- 然后像下面的截图一样重设密码