У меня бесконечные проблемы при попытке отправить почту с использованием пакета pear mail:
Я использую xampp на своем локальном компьютере для целей тестирования, и следующий код работает отлично:
//PEAR
require_once('../PEAR/Mail.php');
$from = "<sender@domain.com>";
$to = "<receiver@domain.com>";
$subject = "Hi";
$body = "Testing message";
$host = "ssl://smtp.gmail.com"; //ssl://
$port = "465";
$username = "my_account@gmail.com";
$password = "**********";
$headers = array ('From' => $from,
'To' => $to,
'Subject' => $subject);
$smtp = Mail::factory('smtp',
array ('host' => $host,
'port' => $port,
'auth' => true,
'username' => $username,
'password' => $password));
$mail = $smtp->send($to, $headers, $body);
function &factory($driver, $params = array())
{
$driver = strtolower($driver);
@include_once 'Mail/' . $driver . '.php';
$class = 'Mail_' . $driver;
if (class_exists($class)) {
$mailer = new $class($params);
return $mailer;
} else {
return PEAR::raiseError('Unable to find class for driver ' . $driver);
}
}
if (PEAR::isError($mail)) {
echo("<p>" . $mail->getMessage() . "</p>");
} else {
echo("<p>Message successfully sent!</p>");
}
//end of php tag
ОДНАКО, когда я загружаю файл на сетевой веб-сервер и запускаю тот же сценарий, я получаю следующую ошибку:
"Не удалось подключиться к ssl: //smtp.gmail.com: 465[SMTP: Не удалось подключить сокет: соединение отклонено (код: -1, ответ:)] "
Я также пробовал порты 587 и 443, но безрезультатно.Я предполагаю, что проблема должна быть связана с socket.php, smtp.php, mail.php или даже с файлами конфигурации сервера, так как в приведенном выше коде нет ничего плохого.Я был бы чрезвычайно признателен, если бы кто-то мог указать мне правильное направление!