при отправке электронной почты функция отправки не работает в Zend Framework - PullRequest
0 голосов
/ 14 декабря 2011

, когда я использую следующий код в моем IndexController.php, я получаю ошибку, как показано ниже кода:

код в IndexController.php

<?php

class IndexController extends Zend_Controller_Action

{

public function init()
{
    /* Initialize action controller here */
}

public function indexAction()
{

    $config = array
    (
        'auth' => 'login',
        'username' => 'mymail@gmail.com',
        'password' => 'mypass',
        'ssl' => 'ssl',
        'port' => 465,
    );


    $transport = new Zend_Mail_Transport_Smtp('smtp.gmail.com', $config);

    $mail = new Zend_Mail();
    $mail->addTo('othermail@gmail.com', 'me' )
         ->setFrom('mymail@gmail.com', 'me')
         ->setSubject('your trial at fitness first')
         ->setBodyText('email body in plain text')
         ->send($transport);
}

}

Ошибка, отображаемая на странице:

An error occurred

Application error

Я никогда не редактировал другие файлы, просто установил Zend, создал новый проект и продолжил, как говорилось в руководстве ...

Но я застрял @ вышеуказанная ошибка

Ответы [ 2 ]

1 голос
/ 15 декабря 2011

Это довольно сложно объяснить, но я стараюсь.

Когда в ZF происходит ошибка, обычно выдается исключение. Это пинает ваш ErrorController.

В этом ErrorController вы получаете только трассировку стека и сообщение об ошибке, когда вы указали

phpSettings.display_errors = 1

в application/configs/application.ini для используемых вами APPLICATION_ENV

Взгляните на: http://framework.zend.com/manual/en/zend.application.quick-start.html там описано, как это работает. Простой способ установить APPLICATION_ENV - это поместить его в .htaccess файл

.
SetEnv APPLICATION_ENV development

Это все описано в ссылке. Затем отредактируйте ваш application/configs/application.ini как:

[development]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
0 голосов
/ 15 декабря 2011

Если вы используете Gmail, попробуйте изменить конфигурацию на:

$config = array
    (
        'auth' => 'login',
        'username' => 'mymail@gmail.com',
        'password' => 'mypass',
        'ssl' => 'tls',
        'port' => 587,
    );

Если это работает, проблема вашей предыдущей версии должна заключаться в том, что openssl не включен в вашем файле php.ini

...