Quantcast
Channel: Últimos conteúdos
Viewing all articles
Browse latest Browse all 14190

Formulário em Flash AS3 com PHP e autenticação SMTP

$
0
0

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.";
	}


}

?>

Viewing all articles
Browse latest Browse all 14190