Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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.
Carregando comentários...