Ir para conteúdo

POWERED BY:

Arquivado

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

Web.Hard

Formulario De Contato (Host UOL)

Recommended Posts

Bom dia,

 

Migrei minha hospedagem da locaweb para UOL. O site funcionou direitinho, porém o formulario de contato não envia mensagens de pessoas que possuem email @ hotmail, @gmail, @ msn, @ yahoo etc...Já falei com o atendimento deles umas 40 vezes, abri 3 chamados, já testei os códigos das Faq e tópicos de ajuda deles umas 100 vezes e nada dos emails chegarem, já estou a mais de uma semana trabalhando nisso e já não sei mais por onde recomeçar. Falam de autenticação SMTP e já testei o PHPmailer mais não chegou a funcionar. Meu site é em Flash com Action Script 3. Seguem os códigos do send_email.php e a action do formulario caso seja preciso:

 

send_mail.php

 

<?php

 

$contact_name = $_POST['nome'];

$contact_email = $_POST['email'];

$contact_subject = $_POST['assunto'];

$contact_message = $_POST['mensagem'];

 

if( $contact_name == true )

{

$destinatarios = "contato@meudominio.com.br";

$remetente = "contato@meudominio.com.br";

$host = "smtp.meudominio.com.br";

$username = "contato@meudominio.com.br";

$password = "123456";

$sender = $contact_email;

$receiver = "contato@meudominio.com.br";

$client_ip = $_SERVER['REMOTE_ADDR'];

$email_body = "Nome: $contact_name \nEmail: $sender \n\nAssunto: $contact_subject \n\nMensagem: \n\n$contact_message \n\nIP: $client_ip \n\nMeu Site";

$extra = "From: $sender\r\n" . "Reply-To: $sender \r\n" . "X-Mailer: PHP/" . phpversion();

 

if( mail( $receiver, "Mensagem Site - $contact_subject", $email_body, $extra ) )

{

echo "success=yes";

}

else

{

echo "success=no";

}

}

?>

 

Action do formulario Flash (AS3):

 

contact_name.text = contact_email.text = contact_subject.text =

contact_message.text = message_status.text = "";

 

send_button.addEventListener(MouseEvent.CLICK, submit);

reset_button.addEventListener(MouseEvent.CLICK, reset);

 

var timer:Timer;

var var_load:URLLoader = new URLLoader;

var URL_request:URLRequest = new URLRequest( "send_email.php" );

URL_request.method = URLRequestMethod.POST;

 

function submit(e:MouseEvent):void

{

if( contact_name.text == "" || contact_email.text == "" ||

contact_subject.text == "" || contact_message.text == "" )

{

message_status.text = "* Por favor, preencha todos os campos.";

}

else if( !validate_email(contact_email.text) )

{

message_status.text = "* Por favor, insira um e-mail válido.";

}

else

{

message_status.text = "enviando...";

 

var email_data:String = "nome=" + contact_name.text

+ "&email=" + contact_email.text

+ "&assunto=" + contact_subject.text

+ "&mensagem=" + contact_message.text;

 

var URL_vars:URLVariables = new URLVariables(email_data);

URL_vars.dataFormat = URLLoaderDataFormat.TEXT;

 

URL_request.data = URL_vars;

var_load.load( URL_request );

var_load.addEventListener(Event.COMPLETE, receive_response );

}

}

 

function reset(e:MouseEvent):void

{

contact_name.text = contact_email.text = contact_subject.text =

contact_message.text = message_status.text = "";

}

 

function validate_email(s:String):Boolean

{

var p:RegExp = /(\w|[_.\-])+@((\w|-)+\.)+\w{2,4}+/;

var r:Object = p.exec(s);

if( r == null )

{

return false;

}

return true;

}

 

function receive_response(e:Event):void

{

var loader:URLLoader = URLLoader(e.target);

var email_status = new URLVariables(loader.data).success;

 

if( email_status == "yes" )

{

message_status.text = "Obrigado! Sua mensagem foi enviada.";

timer = new Timer(500);

timer.addEventListener(TimerEvent.TIMER, on_timer);

timer.start();

}

else

{

message_status.text = "Erro! Sua mensagem não foi enviada.";

}

}

 

function on_timer(te:TimerEvent):void

{

if( timer.currentCount >= 10 )

{

contact_name.text = contact_email.text = contact_subject.text =

contact_message.text = message_status.text = "";

timer.removeEventListener(TimerEvent.TIMER, on_timer);

}

}

 

Qualquer ajuda é bem vinda.

Obrigado a todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Web.Hard,

 

Então vamos lá...

 

contato.html

<form action="enviar.php" method="POST">
<input type="hidden">
<!-- e-mail do destinatario -->
<center>
<table width="39%" border="0" align="center" cellspacing="0" cellpadding="0">
<tr> 
<td>Nome:<br> <input type="text" size="30" name="nome" value=""></td>
</tr>
<tr> 
<td>E-mail:<br>
<input type="text" size="30" name="email" value=""></td>
</tr>
<tr> 
<td>Assunto:<br> <input type="text" size="30" name="assunto" value=""></td>
</tr>
<tr> 
<td>Mensagem:<br>
<textarea cols="40" rows="10" name="mensagem"></textarea> 
</td>
</tr>
<tr> 
<td> <input name="submit" type="submit" value="Enviar"> 
  <input name="reset" type="reset" value="Limpar"></td>
</tr>
</table>
</center>
</form>

Agora é o enviar.php

<?
// ====================
// By MiqueiasBarros
// Não tire os créditos
// ====================
// aqui começa o script
//pega as variaveis por POST
$nome      = $_POST["nome"];
$site     = $_POST["site"];
$email   = $_POST["email"];
$fone  = $_POST["fone"];
$assunto   = $_POST["assunto"];
$mensagem  = $_POST["mensagem"];

global $email; //função para validar a variável $email no script todo

$data      = date("d/m/y");                     //função para pegar a data de envio do e-mail
$ip        = $_SERVER['REMOTE_ADDR'];           //função para pegar o ip do usuário
$navegador = $_SERVER['HTTP_USER_AGENT'];       //função para pegar o navegador do visitante
$hora      = date("H:i");                       //para pegar a hora com a função date

//aqui envia o e-mail para você
mail ("exemplo@exemplo.com.br",                       //email aonde o php vai enviar os dados do form
     "$assunto",
     "Nome: $nome\nData: $data\nIp: $ip\nNavegador: $navegador\nHora: $hora\nSite: $site\nE-mail: $email\nTelefone: $fone\n\nMensagem: $mensagem",
     "From: $email"
    );

//aqui são as configurações para enviar o e-mail para o visitante
$site   = "exemplo@exemplo.com.br";                    //o e-mail que aparecerá na caixa postal do visitante
$titulo = "Coloca um título aqui";                     //titulo da mensagem enviada para o visitante
$msg    = "$nome, obrigado por entrar em contato conosco, em breve entraremos em contato";

//aqui envia o e-mail de auto-resposta para o visitante
mail("$email",
    "$titulo",
    "$msg",
    "From: $site"
   );
echo "<p align=center>$nome, sua mensagem foi enviada com sucesso!</p>";
echo "<p align=center>Estaremos retornando em breve.</p>";
// ====================
// By MiqueiasBarros
// Não tire os créditos
// ====================
?>

Então é isso aê, espero ter ajudado...

OBS: Não retire os créditos por favor ok? Até mais...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde Miqueias,

 

Obrigado pelo código postado, vou tentar adaptar aqui no meu..

O problema é que o seu código é baseado em um form feito em html...o meu form esta em Flash (Action Script 3).

De qualquer forma vou criar uma pagina html e tentar enviar emails com @hotmail, @gmail, @msn, @ yahoo etc...

Esse tem sido o foco do problema...

 

Obrigado...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde Miqueias,

 

Obrigado pelo código postado, vou tentar adaptar aqui no meu..

O problema é que o seu código é baseado em um form feito em html...o meu form esta em Flash (Action Script 3).

De qualquer forma vou criar uma pagina html e tentar enviar emails com @hotmail, @gmail, @msn, @ yahoo etc...

Esse tem sido o foco do problema...

 

Obrigado...

A mano, beleza, qualquer coisa você pode falar aê...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.