Как исправить недопустимые аргументы, переданные в 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
Author: FLY, 2012-10-03

1 answers

Я исправил это с помощью:

$language = user_preferred_language($user);
 3
Author: FLY, 2013-05-21 15:36:27