У меня проблема с отправкой писем через SMTP с помощью Amazons SES. Мой код относительно прост и выглядит так:
require_once "Mail.php";
require_once 'Mail/mime.php';
$stmp_info= array (
'host' => 'ssl://email-smtp.us-east-1.amazonaws.com',
'port' => 465,
'auth' => true,
'username' => 'xxxxxx',
'password' => 'xxx'
);
$headers = array (
'From' => '[email protected]',
'To' => '[email protected]',
'Subject' => 'Test Message'
);
$mime = new Mail_mime("\n");
$mime->setTXTBody('Hello World');
$mime->setHTMLBody('<p>Hello World</p>');
$body = $mime->get();
$headers = $mime->headers($headers);
$smtp = Mail::factory('smtp', $stmp_info);
$mail = $smtp->send('[email protected]', $headers, $body);
Проблема в том, что я всегда получаю эту ошибку:
Failed to connect to email-smtp.us-east-1.amazonaws.com:465 [SMTP: Invalid response code received from server (code: -1, response: )]
Но это работает для проверки соединения:
[root@job-server-1 ~]# $ echo quit | nc -v email-smtp.us-east-1.amazonaws.com 25
-bash: $: command not found
Connection to email-smtp.us-east-1.amazonaws.com 25 port [tcp/smtp] succeeded!
220 email-smtp.amazonaws.com ESMTP SimpleEmailService-376766033
Но если я пропингую адрес, это не сработает. Я пробовал порт 25, 465 и 587 как для tls, так и для ssl. Странно то, что он работает на моем локальном хосте, и эта ошибка возникает только тогда, когда я пытаюсь подключиться из своего экземпляра стойки. Кто-нибудь знает, что может быть причиной этого?