Невозможно отправить почту с локального хоста в Zend Framework 2

Я не могу отправить почту, используя локальное соединение и правильный код. Но получаю эту ошибку

Zend\Mail\Protocol\Exception\RuntimeException

File:

/var/www/html/rustagi/vendor/ZF2/library/Zend/Mail/Protocol/AbstractProtocol.php:348

Message:

5.7.14 <https://accounts.google.com/signin/continue?sarp=1&scc=1&plt=AKgnsbsl
5.7.14 6EWOp6ZKxNQid3Q84gVgHX7gRcrLH3FRL88s1Y-aurZXgnxEziLaRJrbc2OxtCgugbO98W
5.7.14 CMXNsqYvCG5EwG5iP9GU2N3NErFFURRUqffsIRCJW_u7_4WdRXu_Rb1mZjTITQm8VexWbn
5.7.14 tDk2rYv_9cv7NAcQUi5eItDC9HhF0mKns_yLRj1Rsl3nz0sQmn0rtfiJkg_mF8hQelwSAZ
5.7.14 F943KqTxTU3tWiZzO54KNZdUd3YWI> Please log in via your web browser and
5.7.14 then try again.
5.7.14  Learn more at
5.7.14  https://support.google.com/mail/answer/78754 tn5sm2706283pac.32 - gsmtp

Stack trace:

#0 /var/www/html/rustagi/vendor/ZF2/library/Zend/Mail/Protocol/Smtp/Auth/Login.php(83): Zend\Mail\Protocol\AbstractProtocol->_expect(235)
#1 /var/www/html/rustagi/vendor/ZF2/library/Zend/Mail/Protocol/Smtp.php(193): Zend\Mail\Protocol\Smtp\Auth\Login->auth()
#2 /var/www/html/rustagi/vendor/ZF2/library/Zend/Mail/Transport/Smtp.php(340): Zend\Mail\Protocol\Smtp->helo('localhost')
#3 /var/www/html/rustagi/vendor/ZF2/library/Zend/Mail/Transport/Smtp.php(325): Zend\Mail\Transport\Smtp->connect()
#4 /var/www/html/rustagi/vendor/ZF2/library/Zend/Mail/Transport/Smtp.php(336): Zend\Mail\Transport\Smtp->lazyLoadConnection()
#5 /var/www/html/rustagi/vendor/ZF2/library/Zend/Mail/Transport/Smtp.php(205): Zend\Mail\Transport\Smtp->connect()
#6 /var/www/html/rustagi/module/ZfcAdmin/src/ZfcAdmin/Controller/AdminController.php(185): Zend\Mail\Transport\Smtp->send(Object(Zend\Mail\Message))
#7 /var/www/html/rustagi/vendor/ZF2/library/Zend/Mvc/Controller/AbstractActionController.php(83): ZfcAdmin\Controller\AdminController->SendMailAction()
#8 [internal function]: Zend\Mvc\Controller\AbstractActionController->onDispatch(Object(Zend\Mvc\MvcEvent))
#9 /var/www/html/rustagi/vendor/ZF2/library/Zend/EventManager/EventManager.php(468): call_user_func(Array, Object(Zend\Mvc\MvcEvent))
#10 /var/www/html/rustagi/vendor/ZF2/library/Zend/EventManager/EventManager.php(207): Zend\EventManager\EventManager->triggerListeners('dispatch', Object(Zend\Mvc\MvcEvent), Object(Closure))
#11 /var/www/html/rustagi/vendor/ZF2/library/Zend/Mvc/Controller/AbstractController.php(117): Zend\EventManager\EventManager->trigger('dispatch', Object(Zend\Mvc\MvcEvent), Object(Closure))
#12 /var/www/html/rustagi/vendor/ZF2/library/Zend/Mvc/DispatchListener.php(114): Zend\Mvc\Controller\AbstractController->dispatch(Object(Zend\Http\PhpEnvironment\Request), Object(Zend\Http\PhpEnvironment\Response))
#13 [internal function]: Zend\Mvc\DispatchListener->onDispatch(Object(Zend\Mvc\MvcEvent))
#14 /var/www/html/rustagi/vendor/ZF2/library/Zend/EventManager/EventManager.php(468): call_user_func(Array, Object(Zend\Mvc\MvcEvent))
#15 /var/www/html/rustagi/vendor/ZF2/library/Zend/EventManager/EventManager.php(207): Zend\EventManager\EventManager->triggerListeners('dispatch', Object(Zend\Mvc\MvcEvent), Object(Closure))
#16 /var/www/html/rustagi/vendor/ZF2/library/Zend/Mvc/Application.php(313): Zend\EventManager\EventManager->trigger('dispatch', Object(Zend\Mvc\MvcEvent), Object(Closure))
#17 /var/www/html/rustagi/index.php(17): Zend\Mvc\Application->run()
#18 {main}

Я использую этот код: —

$options = new Mail\Transport\SmtpOptions(array(
'name' => 'localhost',
'host' => 'smtp.gmail.com',
'port'=> 587,
'connection_class' => 'login',
'connection_config' => array(
'username' => '[email protected]',
'password' => '********',
'ssl'=> 'tls',
),
));

$fileContents = fopen("/usr/share/pixmaps/faces/sky.jpg", 'r');
$attachment = new Mime\Part($fileContent);
$attachment->type = 'image/jpg';
$attachment->disposition = Mime\Mime::DISPOSITION_ATTACHMENT;

// $this->renderer = $this->getServiceLocator()->get('ViewRenderer');
$content = "gdgdfgdfgdfgddfg";

// make a header as html
$html = new MimePart($content);
$html->type = "text/html";
$body = new MimeMessage();
$body->setParts(array($html,$attachment));

// instance mail
$mail = new Mail\Message();
$mail->setBody($body); // will generate our code html from template.phtml
$mail->setFrom('[email protected]','Sender Name');
$mail->setTo('[email protected]');
$mail->setSubject('Your Subject');

$transport = new Mail\Transport\Smtp($options);
$transport->send($mail);

Как я могу этого добиться. Я много искал по этому вопросу, но, не получив решения, ваша помощь будет высоко оценена.

1

Решение

изменить линию

'ssl'=> 'tls' // tls causes problems when sending via gmail

в

'ssl'=> 'ssl'

убедитесь, что в настройках ini нет перезаписывающей записи

smtp.params.ssl = "tls" // this is bad -> tls causes problems when sending via gmail
0

Другие решения

Ничего общего с TLS. Вы также должны разрешить менее безопасные приложения через свой аккаунт Gmail Вот. Работал на меня .. !!

0

увидеть, что ваша конфигурация неверна
используя ssl или tls?
я предлагаю вам использовать скрипт phpmailer

первый активный SMTP сервис от php.ini

поиск: [функция почты]

[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = localhost
; http://php.net/smtp-port
smtp_port = 25

и в следующий раз вы должны использовать класс PHPMailer ~>
Скачать PHPMailer

функция шаблона:

Используйте это ↓

<?php
require_once ("PHPMailer/class.phpmailer.php");
$mail = new PHPMailer(true);
$mail->isSMTP();

try{
$mail->host = "[email protected]";
$mail->SMTPAuth = true;
$mail->SMTPSecure = "ssl";
$mail->Port = 465;
$mail->Username = "[email protected]";
$mail->Password = "yourPassword";
$mail->AddAddress("[email protected]");
$mail->SetForm("[email protected]","your name");
$mail->Subject = "emailSubject";
$mail->CharSet = "UTF-8";
$mail->ContentType = "text/htm";
$mail->msgHTML("MailContent");
$mail->send();
echo 'Seccess';

}
catch(phpmailerException $mail){
echo $mail->errorMessage();
}
catch(Exception $mail){
echo $mail->getMessage();
}
?>
-2
По вопросам рекламы [email protected]