Não foi possível conectar-se ao host SMTP
Erro de SMTP: não foi possível conectar-se ao host SMTP. A mensagem não pôde ser enviada.
Erro do remetente: Erro de SMTP: Não foi possível conectar-se ao host SMTP.
Eu não consigo encontrar uma maneira de fazer o PHPMailer funcionar no CentOS. Mail funciona muito bem no Windows com o XAMPP, mas eu sempre recebo esse erro no Linux.
O servidor SMTP é um Lotus Domino escutando na porta 25, a máquina CentOS não tem nenhum firewall e o estranho é que mesmo o mail () não funciona. Não retorna nada (enquanto no Windows retorna 1). Se eu enviar um e-mail por telnet através do servidor CentOS, ele funciona muito bem, então não acho que seja um problema de rede. Deve estar relacionado ao PHP, mas não sei como.
<?php
require("class.phpmailer.php");
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Host = "192.168.x.x";
$mail->SMTPAuth = false;
$mail->From = "[email protected]";
$mail->FromName = "XXX";
$mail->AddAddress("[email protected]");
$mail->IsHTML(true);
$mail->Subject = "Test";
$mail->Body = "Test";
if(!$mail->Send())
{
echo "Message could not be sent. <p>";
echo "Mailer Error: " . $mail->ErrorInfo;
exit;
}
echo "Message has been sent";
?>
Apenas para esclarecer o código acima funciona no XAMPP (Windows).
Eu depurei o erro no PHPMailer e o erro acontece aqui (método sms.mtp.php Connect ()):
$this->smtp_conn = @fsockopen($host, // the host of the server
$port, // the port to use
$errno, // error number if any
$errstr, // error message if any
$tval); // give up after ? secs
// verify we connected properly
if(empty($this->smtp_conn)) {
$this->error = array("error" => "Failed to connect to server",
"errno" => $errno,
"errstr" => $errstr);
if($this->do_debug >= 1) {
echo "SMTP -> ERROR: " . $this->error["error"] . ": $errstr ($errno)" . $this->CRLF . '<br />';
}
return false;
}
Parece que não pode abrir o soquete ...
ATUALIZAR: Usando $ mail-> SMTPDebug = 2; como sugerido por Alvaro produziu esta saída:
SMTP -> ERRO: Falha ao conectar-se ao servidor: Permissão negada (13)