Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Ao tentar enviar um email via GMAIL pelo PHPMAILER da o erro:
SMTP -> ERROR: Failed to connect to server: Connection timed out (110)
Segue minha configuração:
//AUTENTICAÇÃO NO SERVIDOR E CONFIGURAÇÕES
$mail = new PHPMailer();
$mail->IsSMTP();
// Configuração de SMTP
$mail->Host = "ssl://smtp.googlemail.com";
$mail->SMTPAuth = true;
$mail->SMTPDebug = true;
$mail->Port = 465;
$mail->Username = "xxxxxxxx@gmail.com";
$mail->Password = "xxxxxxxxxxx";
$mail->SetLanguage('br', 'phpmailer/language/');
$mail->From = "xxxxxxxx@xxxxxxxx.com.br";
$mail->FromName = "xxxxxxxx";
$mail->AddAddress("xxxxxxx@gmail.com");
$mail->IsHTML(true);
$mail->CharSet = 'utf-8';
$mail->Subject = $assunto;
$mail->Body = $msg;
$enviado = $mail->Send();
if ($enviado)
echo "enviado com sucesso <br />";
else
"houve erros <br />";Como eu já te disse, pra especificar melhor o erro, coloque assim:
else
"houve erros: ".$mail->ErrorInfo."\n";
Depois você posta o erro.
Veja o que apareceu:
SMTP -> ERROR: Failed to connect to server: Network is unreachable (101)
Erro de SMTP: Não foi possível conectar com o servidor SMTP.
e outras vezes aparece
SMTP -> ERROR: Failed to connect to server: Connection timed out (110)
Erro de SMTP: Não foi possível conectar com o servidor SMTP.
Tente mudar o host, para isto, porque parece que não está conectando com SMTP do GMail:
$mail->Host = "ssl://smtp.gmail.com";
mesmo erro.
o servidor de saída não tem esse ssl:// se não estou enganado
é simplesmente
smtp.gmail.com
Mesmo problemas :(
smtp.gmail.com
Sim, mas ele já estava usando esse smtp.gmail.com, no qual ele mostrou em outro post, e não deu certo.
Pois é, foi esse mesmo que eu tentei
I
mais alguma dica?
coloca assim
$mail->SMTPSecure = "tls";
$mail->Host = "smtp.gmail.com";
$mail->Port = "587";Deu o seguinte erro:
The following From address failed: xxxxxxxxxx@gmail.com Erro para enviar o email
ninguem ?
no From você está colocando o que ?
posta o formulario todo
$mail->From = $_POST['email'];
$mail->FromName = $_POST['nome'];
$mail->AddAddress('xxxxx@gmail.com', 'Seunome');
$mail->AddReplyTo(($_POST['email']), $mail->FromName);Segue minha página completa:
<?php
date_default_timezone_set('America/Sao_Paulo');
define(CAMINHO_RAIZ, $_SERVER['DOCUMENT_ROOT'] . "/");
ini_set('display_errors', 'On');
ini_set('max_execution_time', '500');
require_once "conexao.php";
require_once "phpmailer/class.phpmailer.php";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head><body>
<?php
if (isset($_POST['enviar'])) {
//foreach ($emails as $e) {
$msg = $_POST['msg'];
$assunto = $_POST['assunto'];
//AUTENTICAÇÃO NO SERVIDOR E CONFIGURAÇÕES
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->SMTPSecure = "ssl";
$mail->SMTPDebug = 1;
$mail->Host = "smtp.gmail.com";
$mail->Port = 465;
$mail->Username = "xxxx@gmail.com";
$mail->Password = "xx";
$mail->SetLanguage('br', 'phpmailer/language/');
$mail->AddAddress("xxxx@hotmail.com");
$mail->IsHTML(true);
$mail->CharSet = 'utf-8'; $mail->Subject = "Assunto da mensagem";
$mail->Body = "Corpo da mensagem";
// Enviando o email
if ($mail->Send()) {
echo "Email enviado";
} else {
echo "Erro para enviar o email";
}
}
else
echo "senha inválida";
?>
<form action="" name="sendmesg" method="post">
ASSUNTO: <input type="text" name="assunto" size="70" id="assunto"/> <br />
<textarea id="msg" rows="20" cols="90" name="msg"></textarea>
<input type="submit" value="Enviar" name="enviar" id="enviar" />
</form>
</body>
</html>atualiza a classe
testa externo nem sempre funciona interno
e coloca mais informação para o pessoal te ajudar no escuro fica dificil
Como assim testar externo ?
você está testando isso localhost ?
Bom, estou testando direto na minha hospedagem (RAVEHOST), ou seja, é localhost se considerado de lá.
<?php
if( $_SERVER['REQUEST_METHOD']=='POST' ){
$msg = strip_tags(trim($_POST['msg']));
if($msg == ''){
echo 'Por favor, preencher o campo mensagem.';
}else{
require_once("phpmailer/class.phpmailer.php");
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->Host = 'smtp.gmail.com';
$mail->Username = 'xxxx.gmail.com';
$mail->Password = 'xxxxxxxx';
$mail->SMTPSecure = "tls";
$mail->Port = 587
$mail->From = 'xxxx@gmail.com';
$mail->FromName = 'Seunome';
$mail->AddAddress('xxxx@gmail.com', 'Seunome');
$mail->IsHTML(true);
$mail->CharSet = 'utf-8';
$mail->Body .= "Mensagem: ".nl2br($_POST['msg'])."<br />";
$mail->AltBody = 'Para mensagens somente texto';
if(!$mail->Send()) {
echo 'Erro ao enviar, por favor entre em contato no email xxxx@seuemail.com.br!';
}else{
echo 'Mensagem enviada com sucesso!';
unset($msg);
}
}
}
?>Gente descobri algo que pode mudar o rumo deste problema, Veja bem:
Testando localmente (em minha máquina) funciona normal, porém quando testo na minha hospedagem da este erro. Seria alguma configuração no php.ini ? (O problema é que na minha hospedagem não achei o php.ini).
por isso que perguntei
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->Host = 'smtp.seudominio.com.br';
$mail->Username = 'usuario@seudominio.com.br';
$mail->Password = 'xxxxxxxx';
$mail->AddAddress('email@destinatario”,”Nome do Destinatario);Resolvido !! Mudei no php.ini para essa linha e funcionou:
; For Win32 only.
; http://php.net/smtp
SMTP = smtp.uol.com.br
; http://php.net/smtp-port
smtp_port = 25
; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = sos@uol.com.br
alguém por favor ? é um pouco urgente. :(