Pessoal estou com dificuldade para fazer funcionar um formulario em Flash com FORM em PHP com autenticação SMTP.
Vou usar esse formulário no servidor do UOL.
Segue abaixo o código AS3 do meu FLA.
A URL abaixo está personalizada para o meu site no código original:
http://www.site.com.br/form.php
// Associamos o click no botão enviar à função de envio de e-mail. enviar_btn.addEventListener(MouseEvent.CLICK, EnviarEmail); function EnviarEmail(evt) { resultado_txt.text = "Enviando mensagem, aguarde!"; // Cria o objeto que realizará o envio dos dados para a página // envio_email.php. var loader:URLLoader = new URLLoader(); // Criamos o listener que será chamado ao fim da execução do script // de envio de e-mail. loader.addEventListener(Event.COMPLETE, FimLoad); // Criamos os listener que serão chamados em caso de erro ao tentar abrir // o script (arquivo não encontrado ou em outro domínio por exemplo). loader.addEventListener(IOErrorEvent.IO_ERROR, ErroLoad); loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, ErroLoad); // Definimos qual script enviará o e-mail e como serão enviados os // parâmetros para esse script. var request:URLRequest = new URLRequest("http://www.site.com.br/form.php"); request.method = "POST"; // Definimos os parâmetros a serem passados para o script // http://www.site.com.br/form.php var variables:URLVariables = new URLVariables(); variables.nomeRemetente = nomeRemetente_txt.text; variables.email = email_txt.text; variables.assunto = assunto_txt.text; variables.mensagem = mensagem_txt.text; request.data = variables; // Solicitamos a execução do Script. loader.load(request); } function FimLoad(evt) { // Exibimos o resultado do envio. resultado_txt.text = evt.target.data; } function ErroLoad(evt) { resultado_txt.text = "Ocorreu um erro durante o envio do e-mail. Tente enviar sua mensagem mais tarde."; }
Segue abaixo o código PHP que estou quebrando a cabeça.
As variáveis abaixo estão personalizadas para o meu site no código original:
$destinatarios = 'e-mail@dominio.com.br';
$usuario = 'e-mail@dominio.com.br';
$senha = 'senha';
$destino = 'e-mail@dominio.com.br';
Obs: Não fiz nenhuma alteração no código a partir do comentário "A PARTIR DAQUI NAO ALTERAR".
Código original: http://amelhorcoisadomundo.com.br/hospedagem/sites/formulario-php-smtp/
<?php // Ocultamos warnings e erros. Caso você tenha problema // ao enviar os e-mails, descomente esse código para visualizar a causa. ini_set( "display_errors", 0); if (isset($_POST['enviar'])){ /*digite os destinatarios separados por virgula*/ $destinatarios = 'e-mail@dominio.com.br'; /*usuario ou nome completo da conta criada em sua hospedagem, como por exemplo teste@seudominio*/ $usuario = 'e-mail@dominio.com.br'; /*senha da conta de email acima*/ $senha = 'senha'; /*nome do destinatario no qual receberá a mensagem*/ $nomeDestinatario = 'Maurian Soares Salvador'; /*************************** AVANCADO - ALTERE CASO SAIBA O QUE ESTA FAZENDO *******************/ /*abaixo as veriaveis principais, que devem conter em seu formulario*/ $nomeRemetente = $_POST['nomeRemetente']; $resposta = $_POST['email']; $assunto = $_POST['assunto']; $mensagem = $_POST['mensagem']; $destino = 'e-mail@dominio.com.br'; $_POST['mensagem'] = nl2br($_POST['mensagem']); /***********************************A PARTIR DAQUI NAO ALTERAR************************************/ foreach ($_POST as $dados['me1'] => $dados['me2']){ $dados['me3'][] = '<b>'.$dados['me1'].'</b>: '.$dados['me2']; } $dados['me3'] = '<hr><h4>Mensagem do site</h4>'.implode('<br>', $dados['me3']).'<hr>'; $dados['email'] = array('usuario' => $usuario, 'senha' => $senha, 'servidor' => 'smtp.'.substr(strstr($usuario, '@'), 1), 'nomeRemetente' => $nomeRemetente, 'nomeDestinatario' => $nomeDestinatario, 'resposta' => $resposta, 'assunto' => $assunto, 'mensagem' => $dados['me3']); ini_set('php_flag mail_filter', 0); $conexao = fsockopen($dados['email']['servidor'], 587, $errno, $errstr, 10); fgets($conexao, 512); $dados['destinatarios'] = explode(',', $destinatarios); foreach ($dados['destinatarios'] as $dados['1']){ $dados['destinatarios']['RCPTTO'][] = '< '.$dados['1'].' >'; $dados['destinatarios']['TO'][] = $dados['1']; } $dados['cabecalho'] = array('EHLO ' => $dados['email']['servidor'], 'AUTH LOGIN', base64_encode($dados['email']['usuario']), base64_encode($dados['email']['senha']), 'MAIL FROM: ' => '< '.$dados['email']['usuario'].' >', 'RCPT TO:' => $dados['destinatarios']['RCPTTO'], 'DATA', 'MIME-Version: ' => '1.0', 'Content-Type: text/html; charset=iso-8859-1', 'Date: ' => date('r',time()), 'From: ' => array($dados['email']['nomeRemetente'].' ' => '< '.$dados['email']['usuario'].' >'), 'To:' => array($dados['email']['nomeDestinatario'].' ' => $dados['destinatarios']['TO']), 'Reply-To: ' => $dados['email']['resposta'],'Subject: ' => $dados['email']['assunto'], 'mensagem' => $dados['email']['mensagem'], 'QUIT'); foreach ($dados['cabecalho'] as $dados['2'] => $dados['3']){ if (is_array($dados['3'])){ foreach ($dados['3'] as $dados['4'] => $dados['5']){ $dados['4'] = empty($dados['4']) ? '' : $dados['4']; $dados['5'] = empty($dados['5']) ? '' : $dados['5']; $dados['4'] = is_numeric($dados['4']) ? '' : $dados['4']; if (is_array($dados['5'])){ $dados['5'] = "< ".implode(', ', $dados['5'])." >"; } fwrite($conexao, $dados['2'].$dados['4'].$dados['5']."\r\n", 512).'<br>'; fgets($conexao, 512); } }else{ $dados['2'] = empty($dados['2']) ? '' : $dados['2']; $dados['3'] = empty($dados['3']) ? '' : $dados['3']; $dados['2'] = is_numeric($dados['2']) ? '' : $dados['2']; if ($dados['2'] == 'Subject: '){ fwrite($conexao, $dados['2'].$dados['3']."\r\n", 512).'<br>'; fwrite($conexao, "\r\n", 512).'<br>'; fgets($conexao, 512); } elseif ($dados['2'] == 'mensagem') { fwrite($conexao, $dados['3']."\r\n.\r\n").'<br>'; fgets($conexao); } else { fwrite($conexao, $dados['2'].$dados['3']."\r\n", 512).'<br>'; fgets($conexao, 512); } } } fclose($conexao); if (mail($destino, $assunto, $mensagem)) { echo "Mensagem enviada com sucesso!"; } else { echo "Não foi possível enviar sua mensagem. Tente enviar sua mensagem mais tarde."; } } ?>