Как отправить письмо по smtp используя Zend Framework2?

114
21 ноября 2019, 01:40

Как отправить письмо по smtp используя Zend Framework и ORM Doctrine,а так же в использовании локальный сервер OpenServer? Все библиотеки и классы подключены.Данный метод приложения используется по видеоуроку автором https://www.youtube.com/watch?v=pcREJw815NM&list=PLoonZ8wII66j76OU66nzKdKy1kYp0fWK0&index=48. Там ответа на вопрос не получил,надеюсь здесь найду ответ на решение.

Регистрация,работает, как только добавил метод для отправки письма, после регистрации получаю ошибку.

Метод отвечающий за отправку письма:

    protected function sendConfirmationEmail($user)
    {
        $transport = $this->getServiceLocator()->get('mail.transport');
        $message = new Message();
        $message->setEncoding("UTF-8");
        $message->addTo($user->getUsrEmail())
            ->addFrom('my_email')
            ->setSubject('Регистрация')
            ->setBody('Вы успешно зарегистрированы на ' . $this->getRequest()->getServer('HTTP_HOST'));
        $transport->send($message);
    }

В модуле,в методе прописана фабрика по производству 'mail_transport :

  'mail.transport' => function(ServiceManager $serviceManager){
            $config = $serviceManager->get('Config');
            $transport = new Smtp();
            $transport->setOptions(new SmtpOptions($config['mail']['transport']['options']));
            return $transport;
        },

В файле сconfig\autoload\mail.lcal.php прописаны настройки отправки:

<?php
return array(
    'mail' => array(
        'transport' => array(
            'options' => array(
                'host' => 'smtp.gmail.com', 
                'connection_class' => 'plain',
                'connection_config' => array(
                    'username' => 'username',
                    'password' => 'password',
                    'ssl' => 'tls',
                ),
            ),
        ),

Собственно сама ошибка:

File: D:\OSPanel\domains\zblogprofessional.local\vendor\zendframework\zendframework\library\Zend\Mail\Protocol\AbstractProtocol.php:351 Message: 5.7.8 Username and Password not accepted. Learn more at 5.7.8 https://support.google.com/mail/?p=BadCredentials v7sm1368745ljk.7 - gsmtp Stack trace:

0 D:\OSPanel\domains\zblogprofessional.local\vendor\zendframework\zendframework\library\Zend\Mail\Protocol\Smtp\Auth\Plain.php(81):

Zend\Mail\Protocol\AbstractProtocol->_expect(235)

1 D:\OSPanel\domains\zblogprofessional.local\vendor\zendframework\zendframework\library\Zend\Mail\Protocol\Smtp.php(193):

Zend\Mail\Protocol\Smtp\Auth\Plain->auth()

2 D:\OSPanel\domains\zblogprofessional.local\vendor\zendframework\zendframework\library\Zend\Mail\Transport\Smtp.php(340):

Zend\Mail\Protocol\Smtp->helo('localhost')

3 D:\OSPanel\domains\zblogprofessional.local\vendor\zendframework\zendframework\library\Zend\Mail\Transport\Smtp.php(325):

Zend\Mail\Transport\Smtp->connect()

4 D:\OSPanel\domains\zblogprofessional.local\vendor\zendframework\zendframework\library\Zend\Mail\Transport\Smtp.php(336):

Zend\Mail\Transport\Smtp->lazyLoadConnection()

5 D:\OSPanel\domains\zblogprofessional.local\vendor\zendframework\zendframework\library\Zend\Mail\Transport\Smtp.php(205):

Zend\Mail\Transport\Smtp->connect()

6 D:\OSPanel\domains\zblogprofessional.local\module\AuthDoctrine\src\AuthDoctrine\Controller\IndexController.php(146):

Zend\Mail\Transport\Smtp->send(Object(Zend\Mail\Message))

7 D:\OSPanel\domains\zblogprofessional.local\module\AuthDoctrine\src\AuthDoctrine\Controller\IndexController.php(125):

AuthDoctrine\Controller\IndexController->sendConfirmationEmail(Object(Blog\Entity\User))

8 D:\OSPanel\domains\zblogprofessional.local\vendor\zendframework\zendframework\library\Zend\Mvc\Controller\AbstractActionController.php(83):

AuthDoctrine\Controller\IndexController->registerAction()

9 D:\OSPanel\domains\zblogprofessional.local\module\Application\src\Application\Controller\BaseController.php(18):

Zend\Mvc\Controller\AbstractActionController->onDispatch(Object(Zend\Mvc\MvcEvent))

10 [internal function]: Application\Controller\BaseController->onDispatch(Object(Zend\Mvc\MvcEvent)) 11 D:\OSPanel\domains\zblogprofessional.local\vendor\zendframework\zendframework\library\Zend\EventManager\EventManager.php(468):

call_user_func(Array, Object(Zend\Mvc\MvcEvent))

12 D:\OSPanel\domains\zblogprofessional.local\vendor\zendframework\zendframework\library\Zend\EventManager\EventManager.php(207):

Zend\EventManager\EventManager->triggerListeners('dispatch', Object(Zend\Mvc\MvcEvent), Object(Closure))

13 D:\OSPanel\domains\zblogprofessional.local\vendor\zendframework\zendframework\library\Zend\Mvc\Controller\AbstractController.php(117):

Zend\EventManager\EventManager->trigger('dispatch', Object(Zend\Mvc\MvcEvent), Object(Closure))

14 D:\OSPanel\domains\zblogprofessional.local\vendor\zendframework\zendframework\library\Zend\Mvc\DispatchListener.php(114):

Zend\Mvc\Controller\AbstractController->dispatch(Object(Zend\Http\PhpEnvironment\Request), Object(Zend\Http\PhpEnvironment\Response))

15 [internal function]: Zend\Mvc\DispatchListener->onDispatch(Object(Zend\Mvc\MvcEvent)) 16 D:\OSPanel\domains\zblogprofessional.local\vendor\zendframework\zendframework\library\Zend\EventManager\EventManager.php(468):

call_user_func(Array, Object(Zend\Mvc\MvcEvent))

17 D:\OSPanel\domains\zblogprofessional.local\vendor\zendframework\zendframework\library\Zend\EventManager\EventManager.php(207):

Zend\EventManager\EventManager->triggerListeners('dispatch', Object(Zend\Mvc\MvcEvent), Object(Closure))

18 D:\OSPanel\domains\zblogprofessional.local\vendor\zendframework\zendframework\library\Zend\Mvc\Application.php(316):

Zend\EventManager\EventManager->trigger('dispatch', Object(Zend\Mvc\MvcEvent), Object(Closure))

19 D:\OSPanel\domains\zblogprofessional.local\public\index.php(17): Zend\Mvc\Application->run()
READ ALSO
Генерация случайной строки JS

Генерация случайной строки JS

Помогите переписать функцию с php на js/jquery

124
sh: 1: /etc/sbin/sendmail: not found php не отправляет почту

sh: 1: /etc/sbin/sendmail: not found php не отправляет почту

пытаюсь отправить письмо при помощи mail()в консоль падает ошибка sh: 1: /etc/sbin/sendmail: not found

137
Почему socket() возвращает -1?

Почему socket() возвращает -1?

Пытаюсь создать сокет на windows таким образом:

124
Как узнать какие элементы были изменены функцией?

Как узнать какие элементы были изменены функцией?

Задача может показаться странной, но у нее есть практическое применение

156