Ir ao conteúdo
  • Cadastre-se

Enviando dados de formulario para um e-mail.


Vilson Santana

Posts recomendados

ouve um erro no envio para joaozinho@joaozinho... Nesse caso o email que a pessoa digita no formulario!

O codigo é este que estou usando

<?


require("phpmailer/class.phpmailer.php");


$assunto = "Reserva de Passagem";
$nome = $_POST['nome'];
$telefone = $_POST['tefefone'];
$email = $_POST['email'];
$endereco = $_POST['endereco'];
$bairro = $_POST['bairro'];
$cidade = $_POST['cidade'];
$uf = $_POST['uf'];
$cep = $_POST['cep'];
$destino = $_POST['destino'];
$empresa = $_POST['empresa'];
$horario = $_POST['horario'];
$data = $_POST['data'];
$observacoes = $_POST['observacoes'];

$mail = new PHPMailer();

$mail->IsSMTP();

$mail->Host = "mail.seu_domino.net"; // Seu servidor smtp

$mail->SMTPAuth = true;

$mail->Username = "seu_email@seudominio"; // usuário deste servidor smtp

$mail->Password = "sua_senha"; // senha

$mail->From = $email;

$mail->FromName = $nome;

$mail->SetLanguage("br");
//Enderecos que devem ser enviadas as mensagens (Pode haver mais de 1)
$mail->AddAddress("[email protected]","Seu Nome");

$mail->AddReplyTo($email);

$mail->WordWrap = 50;

$mail->IsHTML(true);

$mail->Subject = $assunto;

$corpo = "Nome: $nome <br/>
Telefone: $telefone <br/>
E-mail: $email <br/>
Endereço: $endereco <br/>
Bairro: $bairro <br/>
Cidade: $cidade <br/>
Uf: $uf <br/>
Cep: $cep <br/>
Destino: $destino <br/>
Empresa: $empresa <br/>
Horário: $horario <br/>
Data: $data <br/>
Observações: $observacoes <br/>";

$mail->Body = $corpo;

$mail->AltBody = " ESPAÇO DO ALT-BODY";

if(!$mail->Send())

{

echo "Solicitação não enviada";

echo "Erro: " . $mail->ErrorInfo;

exit;

}

else

echo "Solicitação enviada com sucesso.";

?>

Link para o comentário
Compartilhar em outros sites

  • Moderador
Qual endereço?

Do site que possui esse formulário... Se tiver... manda em PM

Atualização:

Veja se estes itens estão corretos:

$mail->Host = "mail.seu_domino.net"; // Seu servidor smtp

$mail->SMTPAuth = true;

$mail->Username = "seu_email@seudominio"; // usuário deste servidor smtp

$mail->Password = "sua_senha"; // senha

onde o host tem que ser o seu dominio... e suas credenciais do seu servidor.

eu utilizei esse mesmo script e um trabalho que fiz.

Link para o comentário
Compartilhar em outros sites

Corrigi o servidor SMTP ai sim aparece mensg enviada com sucesso.

Mas um detalhe. Não esta chegando na caixa de entrada, coloquei o servidor smtp e o Email que utiliza esse servidor. Da forma que você explicou!!

Corrigiu o erro que aparecia... Mas não ta chegando.

___________________________________________________________________

Caso eu não consiga com esse você conseguiria me ajudar com o que te passei acima que o pessoal do suporte do servidor me mandou, eles não dão suporte para mexer no código tem q ser daquela forma que eles passam, e como você mesmo disse o código é complexo e pra mim sem experiencia ficou complicado...

Desculpa minha insistência é que meu tempo esta se esgotando... O pessoal ja ta me cobrando!

Link para o comentário
Compartilhar em outros sites

Estou trabalhando com o DreamWeaver para a criação... Essa parte do script comecei com

<?

require("phpmailer/class.phpmailer.php");

eu apaguei aquele código que tem quando vai se publicar o documento...

A primeira linha começa com <?.

Não sei se tem algo haver mas só ressaltando.

Link para o comentário
Compartilhar em outros sites

  • Moderador

Uma coisa amigo, se apareceu mensagem enviada com sucecesso, é bem provável que ela tenha sido envidada mesmo, se não chegou na caisa de entrada, verifique a caixa de lixo, ou aonde seu e-mail define como spam... já me aconteceu do hotmail jogar todas as mensagens para o lixo direto .. aí eu tive que dar permissão diretamente lá no e-mail.

Link para o comentário
Compartilhar em outros sites

  • Moderador

Então faça um teste, comente as partes que enviam para o e-mail e tente printar as variaveis que você recebe em alert ou em tela com echo para ver se os dados estão chegando corretamente...

Uma coisa que me chamou a atenção.. você usa o servidor smtp correto? então você deveria importar também a classe de envio com smtp do phpmailer..

require("phpmailer/class.phpmailer.php");

require("phpmailer/class.smtp.php");

algo parecido.. uma para usar a classe toda e outra pra usar com servidor smtp

Link para o comentário
Compartilhar em outros sites

  • Moderador

Faça um teste, retire as credenciais e o auth.

tente assim:


<?php


require("phpmailer/class.phpmailer.php");
require("phpmailer/class.smtp.php");

$assunto = "Reserva de Passagem";
$nome = $_POST['nome'];
$telefone = $_POST['tefefone'];
$email = $_POST['email'];
$endereco = $_POST['endereco'];
$bairro = $_POST['bairro'];
$cidade = $_POST['cidade'];
$uf = $_POST['uf'];
$cep = $_POST['cep'];
$destino = $_POST['destino'];
$empresa = $_POST['empresa'];
$horario = $_POST['horario'];
$data = $_POST['data'];
$observacoes = $_POST['observacoes'];

$mail = new PHPMailer();
$mail->IsSMTP();
$mail->From = $email;
$mail->FromName = $nome;

$mail->SetLanguage("br");
//Enderecos que devem ser enviadas as mensagens (Pode haver mais de 1)
$mail->AddAddress("[email protected]","Seu Nome");
$mail->AddReplyTo($email);
$mail->WordWrap = 50;
$mail->IsHTML(true);
$mail->Subject = $assunto;
$corpo = "Nome: $nome <br/>
Telefone: $telefone <br/>
E-mail: $email <br/>
Endereço: $endereco <br/>
Bairro: $bairro <br/>
Cidade: $cidade <br/>
Uf: $uf <br/>
Cep: $cep <br/>
Destino: $destino <br/>
Empresa: $empresa <br/>
Horário: $horario <br/>
Data: $data <br/>
Observações: $observacoes <br/>";

$mail->Body = $corpo;
$mail->AltBody = " ESPAÇO DO ALT-BODY";

if(!$mail->Send()){
echo "Solicitação não enviada";
echo "Erro: " . $mail->ErrorInfo;

exit;

}else[COLOR="Red"]{[/COLOR]
echo "Solicitação enviada com sucesso.";
[COLOR="Red"]}[/COLOR]
?>

Notei que estava faltando duas chaves no final no else

Bem, estava olhando no meu servidor.. eu não usei as credenciais e funciona normalmente.. talvez funcione com você da mesma forma que o meu.

abraço

Link para o comentário
Compartilhar em outros sites

Agora deu o mesmo erro que você viu da outra vez... O mesmo erro que tava aparecendo quando entrou.

Coloquei a autenticação e deu esse erro

Solicitação não enviadaErro: SMTP Error: The following recipients failed: ***@****.com.br

SMTP server error: 5.7.1 : Relay access denied

Link para o comentário
Compartilhar em outros sites

  • Moderador

qual é seu servidor? Teoricamente o auth é mais para quando se usa o SSL.. e precisa de autenticação.. realmente é bem estranho, porque eu uso normalmente da mesma forma que mencionei ali em cima sem credenciais.. em dois sites diferentes e os dois funcionam bem.

Link para o comentário
Compartilhar em outros sites

Nem acredito... Conseguiiiiiii aeeee!!

Amigão muito obrigado... Por tudo, tudo mesmo... Paciência... Generosidade... Empenho e seu tempo gasto...

achei o erro...

Estava assim

$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Host = "smtp.dominio.com.br";
$mail->SMTPAuth = true;
$mail->Username = "***@***.com.br";
$mail->Password = "123456";

$mail->From = $mail;
$mail->FromName = $nome;
$mail->SetLanguage("br");
$mail->AddAddress("***@***.com.br");
$mail->AddReplyTo($email);
$mail->WordWrap = 50;
$mail->IsHTML(true);

Coloquei assim e deu certo enviou

$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Host = "smtp.dominio.com.br";
$mail->SMTPAuth = true;
$mail->Username = "***@***.com.br";
$mail->Password = "123456";

$mail->From = [COLOR="Red"]***@***.com.br[/COLOR];
$mail->FromName = $nome;
$mail->SetLanguage("br");
$mail->AddAddress("***@***.com.br");
$mail->AddReplyTo($email);
$mail->WordWrap = 50;
$mail->IsHTML(true);

Obrigado mesmo...

Link para o comentário
Compartilhar em outros sites

  • Moderador

Então, se não usa ajax, experimente colocar desta forma:


if(!$mail->Send()){
echo "<script>
alert('Solicitação não enviada.\nErro: $mail->errorInfo');
history.go(-1);
</script>";
exit;

}else{
echo "<script>
alert('Solicitação enviada com sucesso.');
history.go(-1);
</script>";
}



Link para o comentário
Compartilhar em outros sites

Sim agora aparece a mensagem na janelinha... So que abre uma guia e aparece a janelinha nessa guia que se abre...

Tem como essa janelinha aparecer na mesma pagina do formulario... Ja mudei no formulario ao invés de abrir como _blank abrir como _parent ou _self mas continuou abrindo a guia e a janela com o aviso.

Link para o comentário
Compartilhar em outros sites

  • Moderador

o melhor meio pra isso, é usar com jquery com ajax ... e com o a funçao serialize()

assim você faz a requisição assíncrona sem sair da pagina..

Normalmente eu não usaria o target, mas se voce quer usar, use o _SELF

aqui no forum tem um tópico onde ensinei um membro a utiliza a requisição ajax no formulario.

veja este link: http://forum.clubedohardware.com.br/resolvido-validacao-formulario/871521/4

Link para o comentário
Compartilhar em outros sites

Eu vou estudar sobre o Jquery, e vou tentar fazer, mas no momento preciso entregar o site pronto, ainda falta alguns ajustes na estrutura, e já ta meio em cima da hora, essas mudanças me exigiria algum tempo de estudo, e no momento não estou tendo esse tempo, mas depois que o site estiver no ar e funcionando, ai sim vou poder fazer os ajustes pra melhorar, ai peço você para reabrir o tópico para sanar as duvidas que virão.

Amigo muitíssimo obrigado mais uma vez, por tudo.

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!