cissah 0 Denunciar post Postado Fevereiro 18, 2014 Oi pessoal, sou nova aqui no fórum e estou começando a desenvolver sites!Estou tentando fazer o envio de e-mail a partir de um formulário de contato, mas só dá erro e não envia.O que quero é testar o envio de e-mail pelo localhost e, depois colocar o endereço do servidor correto (no caso, o dominio.com.br).O erro que aparece quando envio um e-mail é: Houve um erro ao enviar o email!Language string failed to load: from_failed **meuemail@gmail.com Segue código utilizado: ENVIA.PHP <? ini_set( 'display_errors', true ); error_reporting( E_ALL | E_STRICT ); include("phpmailer/class.phpmailer.php"); //instancia objetos $mail = new PHPMailer(); $mail->SetLanguage("br", '/phpmailer/language/'); // mandar via SMTP $mail->IsSMTP(); // Seu servidor smtp $mail->Host = "smtp.gmail.com"; $mail->SMTP_Port = 465; $mail->SMTPSecure = 'ssl'; // habilita smtp autenticado $mail->SMTPAuth = true; // usuário deste servidor smtp $mail->Username = "MEU_EMAIL@gmail.com"; $mail->Password = "MINHA_SENHA"; // senha //email utilizado para o envio $mail->From = " MEU_EMAIL@gmail.com"; $mail->FromName = "CINTIA"; //Enderecos que devem ser enviadas as mensagens $mail->AddAddress("MEU_EMAIL@gmail.com","Cintia"); //wrap seta o tamanhdo do texto por linha $mail->WordWrap = 50; $mail->IsHTML(true); //enviar em HTML // recebendo os dados od formulario if(isset($_POST['nome'])){ $nome = ucwords($_POST['nome']); $email = $_POST['email']; $mensagem = $_POST['mensagem']; // informando a quem devemos responder //ou seja para o mail inserido no formulario $mail->AddReplyTo("$email","$nome"); //criando o codigo html para enviar no email $msg = ""; $msg .= "<b> Nome:</b> $nome<br>\n"; $msg .= "<b> E-mail:</b> $email<br>\n"; $msg .= "<b> Mensagem:</b> $mensagem<br>\n"; } $mail->Subject = "ASSUNTO DO EMAIL"; //adicionando o html no corpo do email $mail->Body = $msg; //enviando e retornando o status de envio if(!$mail->Send()){ echo "<P>Houve um erro ao enviar o email! </P>".$mail->ErrorInfo; //$mail->ErrorInfo informa onde ocorreu o erro exit; } else { echo "<P>Mensagem enviada ok</P>"; } ?> O formulário é simples, e o action aponta para o envia.php. Obrigada desde já! Compartilhar este post Link para o post Compartilhar em outros sites
Ademilson Nunes 14 Denunciar post Postado Fevereiro 18, 2014 altere a linha: $mail->SMTP_Port = 587; e comenta a linha //$mail->SetLanguage("br", '/phpmailer/language/'); Compartilhar este post Link para o post Compartilhar em outros sites
buenoweb 7 Denunciar post Postado Fevereiro 18, 2014 Acontece que esses simuladores não tem servidor smtp. Compartilhar este post Link para o post Compartilhar em outros sites
cissah 0 Denunciar post Postado Fevereiro 18, 2014 Olá, Ainda ocorre o mesmo erro! Não sei se talvez teria que alterar algo no php.ini!! Compartilhar este post Link para o post Compartilhar em outros sites
Ademilson Nunes 14 Denunciar post Postado Fevereiro 18, 2014 Não é preciso configurar o php.ini como na função mail() quando se esta trabalhando com phpmailler Faz um teste usando este modelo: <?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); } } } ?> Compartilhar este post Link para o post Compartilhar em outros sites
cissah 0 Denunciar post Postado Fevereiro 18, 2014 Ainda não funcionou! Apareceu a mensagem de erro: Erro ao enviar, por favor entre em contato no email xxxx@seuemail.com.br! Exclui então o código acima do require_once, para ele entrar direto sem o if, assim não apareceu nenhuma mensagem, a página ficou em branco, mas o email não foi enviado! Compartilhar este post Link para o post Compartilhar em outros sites
Ademilson Nunes 14 Denunciar post Postado Fevereiro 18, 2014 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); } } } altera para $enviado = $mail->Send(); $mail->ClearAllRecipients(); $mail->ClearAttachments(); if ($enviado) { echo "E-mail enviado com sucesso!"; } else { echo "Não foi possível enviar o e-mail.<br /><br />"; echo "<b>Informações do erro:</b> <br />" . $mail->ErrorInfo; } Assim ele vai retornar onde esta ocorrendo este erro. Compartilhar este post Link para o post Compartilhar em outros sites
cissah 0 Denunciar post Postado Fevereiro 18, 2014 Mesmo erro de antes!!! Não foi possível enviar o e-mail.Informações do erro: Language string failed to load: from_failed cintiafaez@gmail.com Compartilhar este post Link para o post Compartilhar em outros sites
Ademilson Nunes 14 Denunciar post Postado Fevereiro 18, 2014 O erro esta na falha de leitura deste arquivo de linguagem, mas você removeu a linha que 'seta' para este arquivo? verifica este post. Nunca vi este erro antes: http://stackoverflow.com/questions/9109261/language-string-failed-to-load-from-failedfrom-email-address Não acho que seja isso, mas verifica se o openssl.dll esta ativo no php.ini extension=php_openssl.dll Compartilhar este post Link para o post Compartilhar em outros sites
cissah 0 Denunciar post Postado Fevereiro 18, 2014 Já havia visto este post antes. Coloquei o código da linguagem mas mesmo assim não adiantou. O arquivo da linguagem está dentro da pasta language e se chama: phpmailer.lang-br $mail = new PHPMailer(); $mail->SetLanguage("br", '/phpMailer/language/'); Ah, e o openssl.dll está ativo! Compartilhar este post Link para o post Compartilhar em outros sites
Ademilson Nunes 14 Denunciar post Postado Fevereiro 18, 2014 sinistro, se você deixar o $mail->SetLanguage('en'); ou mesmo quando você não coloca esta linha no código. ele retorna o mesmo erro? Compartilhar este post Link para o post Compartilhar em outros sites
cissah 0 Denunciar post Postado Fevereiro 18, 2014 Sim, mesmo erro!!! Não faço mais ideia do que pode ser! Olhei bastante códigos e exemplos na net já! :( Alterei o código do envia.php: <?php $nome = utf8_decode (strip_tags(trim($_POST['nome']))); $email = utf8_decode (strip_tags(trim($_POST['email']))); $assunto = "CONTATO DO SITE"; $mensagem = utf8_decode (strip_tags(trim($_POST['mensagem']))); require_once('./phpmailer/class.phpmailer.php'); $Email = new PHPMailer(); $Email->SetLanguage("br"); $Email->IsSMTP(); // Habilita o SMTP $Email->SMTPAuth = true; //Ativa e-mail autenticado $Email->Host = 'smtp.gmail.com'; // Servidor de envio # verificar qual o host correto com a hospedagem as vezes fica como smtp. $Email->Port = '587'; // Porta de envio $Email->Username = 'cintiafaez@gmail.com'; //e-mail que será autenticado $Email->Password = 'SENHA_EMAIL'; // senha do email $Email->SMTPSecure = "ssl"; // ativa o envio de e-mails em HTML, se false, desativa. $Email->IsHTML(true); // email do remetente da mensagem $Email->From = 'cintiafaez@gmail.com'; // nome do remetente do email $Email->FromName = 'Cintia'; // Endereço de destino do emaail, ou seja, pra onde você quer que a mensagem do formulário vá? $Email->AddAddress("cintiafaez@gmail.com"); // para quem será enviada a mensagem // informando no email, o assunto da mensagem $Email->Subject = "(Contato do site - seudominio.com.br)"; // Define o texto da mensagem (aceita HTML) $Email->Body .= "<br /><br /> <strong>Nome:</strong> $nome<br /><br /> <strong>E-mail:</strong> $email<br /><br /> <strong>Assunto:</strong> $assunto<br /><br /> <strong>Mensagem:</strong><br /> $mensagem"; // verifica se está tudo ok com oa parametros acima, se nao, avisa do erro. Se sim, envia. if(!$Email->Send()){ echo "<p>A mensagem não foi enviada. </p>"; echo "Erro: " . $Email->ErrorInfo; }else{ echo "<script>location.href='sucesso.html'</script>"; } ?> E agora retorna o erro: A mensagem não foi enviada. Erro: Erro de SMTP: Nao foi possivel conectar com o servidor SMTP. O que há de errado? É com o PHP.INI? Ou é algum outro arquivo que deva ter? Compartilhar este post Link para o post Compartilhar em outros sites
Ademilson Nunes 14 Denunciar post Postado Fevereiro 18, 2014 Testei aqui com minha conta do Gmail e foi de boa require_once('lib/class.phpmailer.php'); $Email = new PHPMailer(); $Email->SetLanguage("br"); $Email->IsSMTP(); // Habilita o SMTP $Email->SMTPAuth = true; //Ativa e-mail autenticado $Email->Host = "ssl://smtp.googlemail.com"; // Servidor de envio # verificar qual o host correto com a hospedagem as vezes fica como smtp. $Email->Port = '465'; // Porta de envio $Email->Username = 'xxx@gmail.com'; //e-mail que será autenticado $Email->Password = ''; // senha do email $email->SMTPAuth = true; // ativa o envio de e-mails em HTML, se false, desativa. $Email->IsHTML(true); // email do remetente da mensagem $Email->From = 'ctec.php@gmail.com'; // nome do remetente do email $Email->FromName = 'Teste'; // Endereço de destino do emaail, ou seja, pra onde você quer que a mensagem do formulário vá? $Email->AddAddress("xxxx@gmail.com"); // para quem será enviada a mensagem // informando no email, o assunto da mensagem $Email->Subject = "(Contato do site - seudominio.com.br)"; // Define o texto da mensagem (aceita HTML) $Email->Body .= "<br /><br /> <strong>Nome:</strong> $nome<br /><br /> <strong>E-mail:</strong> $email<br /><br /> <strong>Assunto:</strong> $assunto<br /><br /> <strong>Mensagem:</strong><br /> $mensagem"; // verifica se está tudo ok com oa parametros acima, se nao, avisa do erro. Se sim, envia. if(!$Email->Send()){ echo "<p>A mensagem não foi enviada. </p>"; echo "Erro: " . $Email->ErrorInfo; }else{ echo "<script>location.href='sucesso.html'</script>"; } Compartilhar este post Link para o post Compartilhar em outros sites
cissah 0 Denunciar post Postado Fevereiro 18, 2014 Ah! agora sim. Só alterei o Host, a porta e tirei o $Email->SMTPSecure = "ssl"; Funcionou! Muito obrigada a todos pela ajuda!!! Compartilhar este post Link para o post Compartilhar em outros sites