Я пытаюсь отправить по электронной почте ж/CakePHP хотя Mandrill, но это только вращается, то получим:Тайм-аут при попытке отправить по электронной почте через Mandrill в CakePHP 3,1
Error: Connection timed out
Cake\Network\Exception\SocketException
Согласно по-странице ошибка/трассировки стека, ошибка возникает на: vendor/cakephp/cakephp/src/Mailer/Transport/SmtpTransport.php line 206
:
if (!$this->_socket->connect()) {
от /tmp/error.log:
2015-09-21 13:48:04 Error: [Cake\Network\Exception\SocketException] Connection timed out Request URL: /portal/users/add Stack Trace:
#0 /home/user/public_html/user/mysitefolder/vendor/cakephp/cakephp/src/Mailer/Transport/SmtpTransport.php(206): Cake\Network\Socket->connect()
#1 /home/user/public_html/user/mysitefolder/vendor/cakephp/cakephp/src/Mailer/Transport/SmtpTransport.php(161): Cake\Mailer\Transport\SmtpTransport->_connect()
#2 /home/user/public_html/user/mysitefolder/vendor/cakephp/cakephp/src/Mailer/Email.php(1304): Cake\Mailer\Transport\SmtpTransport->send(Object(Cake\Mailer\Email))
#3 /home/user/public_html/user/mysitefolder/src/Controller/Portal/UsersController.php(92): Cake\Mailer\Email->send()
#4 [internal function]: App\Controller\Portal\UsersController->add()
#5 /home/user/public_html/user/mysitefolder/vendor/cakephp/cakephp/src/Controller/Controller.php(416): call_user_func_array(Array, Array)
#6 /home/user/public_html/user/mysitefolder/vendor/cakephp/cakephp/src/Routing/Dispatcher.php(114): Cake\Controller\Controller->invokeAction()
#7 /home/user/public_html/user/mysitefolder/vendor/cakephp/cakephp/src/Routing/Dispatcher.php(87): Cake\Routing\Dispatcher->_invoke(Object(App\Controller\Portal\UsersController))
#8 /home/user/public_html/user/mysitefolder/webroot/index.php(37): Cake\Routing\Dispatcher->dispatch(Object(Cake\Network\Request), Object(Cake\Network\Response))
#9 {main}
Отправка электронной почты в контроллере:
use Cake\Mailer\Email;
// ...
$email = new Email('default');
$email->template('welcome', 'portal')
->from('[email protected]')
->to('[email protected]')
->send();
В моей app.php:
'EmailTransport' => [
'default' => [
'className' => 'Smtp',
'host' => 'smtp.mandrillapp.com',
'port' => 587,
'timeout' => 30,
'username' => 'myusername',
'password' => 'mymandrillapikey', // Key
'client' => null,
'tls' => true, // have also tried false
],
],
'Email' => [
'default' => [
'transport' => 'default',
'from' => ['[email protected]' => 'My Name'],
'replyTo' => ['[email protected]' => 'My Name'],
'charset' => 'utf-8',
'headerCharset' => 'utf-8',
'log' => false,
'emailFormat' => 'html'
],
],
Если я пытаюсь просто стандартный PHP почты это работает:
'EmailTransport' => [
'default' => [
'className' => 'Mail'
]
Резюме: Я проверил w/Mandrill, и они говорят, что они не блокируют какие-либо порты или что-то в этом роде. Я проверил w/my host (HostMonster), и они говорят, что порт открыт, и они ничего не блокируют.
Я в затруднении. Даже если невозможно получить окончательный ответ, я буду признателен за любую помощь, указывающую на меня в правильном направлении или какую-то идею, как я мог бы отладить эту проблему.
Можете ли вы подключиться с помощью SSL (host '=>' ssl: //smtp.mandrillapp.com 'и' port '=> 465)? Может также помочь включить больше протоколирования ('log' => true), как описано здесь: http://book.cakephp.org/3.0/en/core-libraries/email.html#configuration-profiles, чтобы разоблачить фактический SMTP ошибки разговора между вашим сервером и Mandrill's. – terrorbox
@terrorbox - Я пробовал, но такой же вопрос. Включил журнал регистрации ошибок и разместил журнал выше. – Dave
@Dave Вы нашли решение? Я также получаю ту же ошибку –