Как исправить недопустимые аргументы, переданные в DefaultMailSystem->формат() (строка 23 system.mail.inc
Я получаю эту ошибку при разработке модуля:
Предупреждение: Недопустимые аргументы, переданные в DefaultMailSystem->формат() (строка 23/модули/система/system.mail.inc)
Вот мой код:
function mymod_mail($key, &$message, $params) {
switch ($key) {
case 'job_mail':
$message['subject'] = 'mysubject';
$message['body'][] = 'test';
break;
}
}
Я погуглил, как правило, это происходит, когда $message['body']
определяется следующим образом:
$message['body'] = 'test';
вместо $message['body'][] = 'test';
И затем у меня есть следующий код для вызова вышеупомянутого hook_mail()
function mymod_send_mail($vacancies, $user) {
// specify module name and template key for hook_mail
$module = 'mymod';
$key = 'job_mail';
// Specify to and from addressses.
$to = '[email protected]'; // user email TODO get user email based on $uid
$language = language_default();
$params = array(
'username' => $user->name,
'sitename' => variable_get('site_name', 'Drupal'),
$from = variable_get('site_mail', '[email protected]');
$send = TRUE; // defaul = TRUE can be set to FALSE to not actually send the mail and only generate it.
drupal_mail($module, $key, $to, $language, $params, $from, $send );
}
Я поместил debug()
в system.mail.inc над функция взрыва, но это показало, что мое сообщение $message['body']
больше не было массивом ($message['body'][]
).
Также, когда я выполняю отладку результата функции drupal_mail, я вижу, что моя тема задана, но тело пустое.
3
1 answers
Я исправил это с помощью:
$language = user_preferred_language($user);
3
Author: FLY, 2013-05-21 15:36:27