Как устранить эту ошибку: аргумент 1, передаваемый в Zend_Mail_Message::__construct(), должен иметь тип массива, ни один не указан

Мой код в контроллере: `

public function filetransport()
    {
        set_time_limit(0);       
        $message = new Zend_Mail_Message();

        $message->addTo('matthew@zend.com')
        ->addFrom('ralph.schindler@zend.com')
        ->setSubject('Greetings and Salutations!')
        ->setBody("Sorry, I'm going to be late today!");

        // Setup File transport
        $transport = new Zend_Mail_Transport_File();
        $transport->setOptions(array(
                'path'              => 'data/mail/',
                'callback'  => function (Zend_Mail_Transport_File $transport) {
                return 'Message_' . microtime(true) . '_' . mt_rand() . '.txt';
        },
        ));

        $transport->send($message);
    }

При создании экземпляра Zend_Mail_Message выдает ошибку. Ошибка

Catchable fatal error: Argument 1 passed to Zend_Mail_Message::__construct()
must be of the type array, none given,
called in C:\xampp\htdocs\Zend-Mailer\application\controllers\IndexController.php on line 102
and defined in C:\xampp\htdocs\Zend-Mailer\library\Zend\Mail\Message.php on line 57

Если у вас есть идеи по этому поводу, пожалуйста, дайте мне знать.....!

1 ответ

Решение

Согласно документации Zend Zend_Mail_Message принимает один аргумент в качестве параметра. Вы не передаете никаких параметров. Вот почему вы получаете эту ошибку.

__construct (массив $params)

В дополнение к параметрам Zend_Mail_Part::__construct() этот конструктор поддерживает:

  • имя файла или дескриптор файла с необработанным содержимым сообщения
  • массив флагов с флагами для сообщения, ключи игнорируются, используются константы, определенные в Zend_Mail_Storage Inherited_from \Zend_Mail_Part::__construct()

Из документов Zend_Mail_Part,

Zend_Mail_Part поддерживает различные источники контента. Возможные параметры:

  • обработчик экземпляра Zend_Mail_Storage_Abstract для поздней выборки
  • идентификационный номер сообщения для обработчика
  • сырое сырое содержимое с заголовком и телом в виде строки
  • заголовки заголовки в виде массива (имя => значение) или строки, если часть содержимого найдена, она используется в качестве верхних линий
  • noToplines игнорирует контент, найденный после заголовков в параметре 'headers'
  • содержимое в виде строки

Это означает, что, как говорит ошибка, вы упускаете params массив в конструкторе.

Другие вопросы по тегам