Как отправить письмо по 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()Виртуальный выделенный сервер (VDS) становится отличным выбором
пытаюсь отправить письмо при помощи mail()в консоль падает ошибка sh: 1: /etc/sbin/sendmail: not found
Задача может показаться странной, но у нее есть практическое применение