关于php:Drupal 7 user_save 不发送注册邮件

Drupal 7 user_save not sending registration email

我正在以编程方式创建一个drupal 用户帐户,代码如下。除了遵循标准用户创建规则的 Drupal 之外,一切似乎都可以正常工作,主要是发送一封电子邮件以确认电子邮件地址。因此,用户是在 Drupal 中创建的,但确认电子邮件永远不会发送。

电子邮件在安装中工作正常。如果我使用标准的注册表单,用户会按预期收到电子邮件并可以完成注册过程。

关于我需要做什么才能让 user_save 知道发送确认电子邮件的任何提示?

1
2
3
function _webform_submit($form, &$form_state) {
    $data = $form_state['values']['submitted_tree'];
    drupal_set_message('Data is: [cc lang="php"]' . print_r($data, TRUE) . '

');

if (array_key_exists('create_user', $data)) {
drupal_set_message('找到 create_user。');
$name = $data['email'];
$account_id = db_query("SELECT uid FROM {users} WHERE name = :name", array(':name' => $name))->fetchField();

$account = 新的 stdClass();
如果($account_id){
//$account->uid = $account_id;
drupal_set_message("找到现有用户");
}
别的 {

$pass = user_password();
drupal_set_message("创建一个新用户:" . $name ." with pw:" . $pass );
$account->is_new = TRUE;
$帐户->状态=真;

foreach($data as $key => $value) {
//如果这是一个数组,可能是复选框。
if (gettype($value) == 'array') {
foreach($value as $arr_key => $arr_val) {
$edit[$arr_val]['und'][0]['value'] = '1';
}
}
别的 {
$edit[$key]['und'][0]['value'] = $value;
}
}
$edit['name'] = $name;
//$edit['pass'] = $pass;
$edit['mail'] = $name;
$编辑['状态'] = 1;
$edit['init'] = $name;

user_save($account, $edit);
}

}
}
[/cc]


找到答案 - user_save 不处理任何通知,您需要直接处理。我用过:

1
_user_mail_notify('register_no_approval_required', user_save($account, $edit));