Jump to content
Sign in to follow this  
juninhogpe

Formulário de e-mail com anexo

Recommended Posts

Boa noite.

 

Pessoal, tenho o formulário abaixo:

<?php 
 
//Pega os dados postados pelo formulário HTML e os coloca em variaveis
if (preg_match('/site.com.br$/', $_SERVER[HTTP_HOST])) {
//substitua na linha acima a aprte locaweb.com.br por seu domínio.
$email_from='email@site.com.br';	// Substitua essa linha pelo seu e-mail@seudominio
}else {
$email_from = "contato@" . $_SERVER[HTTP_HOST];         
//    Na linha acima estamos forçando que o remetente seja 'webmaster@',
// você pode alterar para que o remetente seja, por exemplo, 'contato@'.
}
 
 
if( PATH_SEPARATOR ==';'){ $quebra_linha="\r\n";
 
} elseif (PATH_SEPARATOR==':'){ $quebra_linha="\n";
 
} elseif ( PATH_SEPARATOR!=';' and PATH_SEPARATOR!=':' )  {echo ('Esse script não funcionará corretamente neste servidor, a função PATH_SEPARATOR não retornou o parâmetro esperado.');
 
}
 
//pego os dados enviados pelo formulário 
	$sistema  	 		  = $_POST["sistema"];
	$nome 	  	 		  = $_POST["nome"];
	$endereco 	 		  = $_POST["endereco"];
	$estado   	 		  = $_POST["estado"];
	$cidade   	 		  = $_POST["cidade"];
	$email   	 		  = $_POST["email"];
	$residencial 		  = $_POST["residencial"];
	$comercial   		  = $_POST["comercial"];
	$celular   			  = $_POST["celular"];
	$tipo_estabelecimento = $_POST["tipo_estabelecimento"];
	$comentarios          = $_POST["comentarios"];
	
	$email = 'email@sitecom.br';
	$assunto = 'Orçamento';
	
	//formato o campo da mensagem 
	$mensagem = wordwrap( $mensagem, 50, "<br>", 1); 
 
//valido os emails 
if (!preg_match("^([0-9,a-z,A-Z]+)([.,_]([0-9,a-z,A-Z]+))*[@]([0-9,a-z,A-Z]+)([.,_,-]([0-9,a-z,A-Z]+))*[.]([0-9,a-z,A-Z]){2}([0-9,a-z,A-Z])?$^", $email)){ 
 
echo"<center>Digite um email válido</center>"; 
echo "<center><a href=\"javascript:history.go(-1)\">Voltar</center></a>"; 
exit; 
 
} 
 
$arquivo = isset($_FILES["arquivo"]) ? $_FILES["arquivo"] : FALSE; 
 
if(file_exists($arquivo["tmp_name"]) and !empty($arquivo)){ 

$fp = fopen($_FILES["arquivo"]["tmp_name"],"rb"); 
$anexo = fread($fp,filesize($_FILES["arquivo"]["tmp_name"])); 
$anexo = base64_encode($anexo); 
 
fclose($fp); 
 
$anexo = chunk_split($anexo); 
 
 
$boundary = "XYZ-" . date("dmYis") . "-ZYX"; 
 
$mens = "--$boundary" . $quebra_linha . ""; 
$mens .= "Content-Transfer-Encoding: 8bits" . $quebra_linha . ""; 
$mens .= "Content-Type: text/html; charset=\"utf-8\"" . $quebra_linha . "" . $quebra_linha . ""; 
$mens .= "Tipo de sistema: $sistema" . $quebra_linha . ""; 
$mens .= "<br>Nome: $nome" . $quebra_linha . ""; 
$mens .= "<br>Endereço: $endereco" . $quebra_linha . ""; 
$mens .= "<br>Estado: $estado" . $quebra_linha . ""; 
$mens .= "<br>Cidade: $cidade" . $quebra_linha . "";
$mens .= "<br>E-mail: $email" . $quebra_linha . ""; 
$mens .= "<br>Telefone Residencial: $residencial" . $quebra_linha . ""; 
$mens .= "<br>Telefone Comercial: $comercial" . $quebra_linha . ""; 
$mens .= "<br>Telefone Celular: $celular" . $quebra_linha . "";  
$mens .= "<br>Tipo de Estabelecimento: $tipo_estabelecimento" . $quebra_linha . "";  
$mens .= "<br>Comentários: $comentarios" . $quebra_linha . "";   
$mens .= "$mensagem" . $quebra_linha . ""; 
$mens .= "--$boundary" . $quebra_linha . ""; 
$mens .= "Content-Type: ".$arquivo["type"]."" . $quebra_linha . ""; 
$mens .= "Content-Disposition: attachment; filename=\"".$arquivo["name"]."\"" . $quebra_linha . ""; 
$mens .= "Content-Transfer-Encoding: base64" . $quebra_linha . "" . $quebra_linha . ""; 
$mens .= "$anexo" . $quebra_linha . ""; 
$mens .= "--$boundary--" . $quebra_linha . ""; 
 
$headers = "MIME-Version: 1.0" . $quebra_linha . ""; 
$headers .= "From: $email_from " . $quebra_linha . ""; 
$headers .= "Return-Path: $email_from " . $quebra_linha . ""; 
$headers .= "Content-type: multipart/mixed; boundary=\"$boundary\"" . $quebra_linha . ""; 
$headers .= "$boundary" . $quebra_linha . ""; 
 
//envio o email com o anexo 
mail($email,$assunto,$mens,$headers, "-r".$email_from); 
 
//echo"Email enviado com Sucesso!"; 
header('Location: orcamento_enviado.php');
 
} 
 
//se nao tiver anexo 
else{ 
 


$mens .= "Tipo de sistema: $sistema" . $quebra_linha . ""; 
$mens .= "<br>Nome: $nome" . $quebra_linha . ""; 
$mens .= "<br>Endereço: $endereco" . $quebra_linha . ""; 
$mens .= "<br>Estado: $estado" . $quebra_linha . ""; 
$mens .= "<br>Cidade: $cidade" . $quebra_linha . "";
$mens .= "<br>E-mail: $email" . $quebra_linha . ""; 
$mens .= "<br>Telefone Residencial: $residencial" . $quebra_linha . ""; 
$mens .= "<br>Telefone Comercial: $comercial" . $quebra_linha . ""; 
$mens .= "<br>Telefone Celular: $celular" . $quebra_linha . "";  
$mens .= "<br>Tipo de Estabelecimento: $tipo_estabelecimento" . $quebra_linha . "";  
$mens .= "<br>Comentários: $comentarios" . $quebra_linha . "";   
$mens .= "$mensagem" . $quebra_linha . ""; 


$headers = "MIME-Version: 1.0" . $quebra_linha . ""; 
$headers .= "Content-type: text/html; charset=utf-8" . $quebra_linha . ""; 
$headers .= "From: $email_from " . $quebra_linha . ""; 
$headers .= "Return-Path: $email_from " . $quebra_linha . ""; 
 
//envia o email sem anexo 
mail($email,$assunto,$mens,$headers, "-r".$email_from); 
 
 
//echo"Email enviado com Sucesso!"; 
header('Location: orcamento_enviado.php');
} 
 
?>

O mesmo está funcionando corretamente, a questão é que quando envio e-mail com anexo a acentuação vem toda errada.

 

O que vocês acham que posso fazer para corrigir?

 

Agradeço desde já.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Similar Content

    • By liniker.o
      Boa tarde pessoal!
      Estou com um problema em meu código quando coloco uma referencia de fonte a mesma não carrega, quando faça o mesmo procedimento local colocando os caminhos de pasta funciona normalmente.
      Será que alguém poderia me ajudar?
      Segue o código.
      <html> <head> <title>Minha pagina</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <!-- Se não declarar charset por meta, envie um header de igual valor --> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <?php //Carregar imagem tamanho da imagen = 515x76 $img = ImageCreateFromJPEG("base.jpg"); //Definir cor $cor1 = imagecolorallocate($img, 0, 0, 0); $cor2 = imagecolorallocate($img, 0, 0, 0); // carregar fonte... $fonte1 = 'https://ff.static.1001fonts.net/r/o/roboto-condensed.light.ttf'; $fonte2 = 'https://ff.static.1001fonts.net/r/o/roboto-condensed.light.ttf'; //Escrever nome $txtNome = $_POST['nome']; $txtFuncao = $_POST['func']; $txtEmail = $_POST['email']; $txtDDD = "+55 ".$_POST['telefone']; // IMAGEM, TAMANHO_FONTE, 0, POSICAO X, posicao Y, TEXTO_COR, ARQ_FONTE, TEXTO imagettftext($img, 32, 0, 250, 100, $cor1, $fonte1, $txtNome); imagettftext($img, 18, 0, 250, 125, $cor1, $fonte2, $txtFuncao); imagettftext($img, 18, 0, 250, 150, $cor1, $fonte2, $txtEmail); imagettftext($img, 18, 0, 250, 180, $cor1, $fonte2, $txtDDD); //Header e output header('Content-type: image/jpeg'); imagejpeg($img,"Assinatura - ".$txtNome.".jpg"); imagedestroy($img); header('Location: Assinatura - '.$txtNome.'.jpg'); ?>  
    • By jranesio
      Estou com problemas com script PHP e cURL para:
      1 - logar no site
      2 - acessar formulario de pesquisa e passar os dados
      3 - receber a página de resposta html
      Itens 1 e 2 estão OK, obtenho a resposta (item 3).
      Alguém pode orientar onde estou errando? Segue script.
      Obrigado
       
       
      <?php
       
      $cookie = dirname(__FILE__).'/cookie.txt';
      $url1='http://clima.feis.unesp.br/login.php'; //página de login
      $url2='http://clima.feis.unesp.br/dados_diarios.php'; //formulario de pesquisa
      $url3='http://clima.feis.unesp.br/recebe_formulario.php'; //Resultado esperado
      $username = 'usuario=siteteste';
      $password = 'senha=testesite';
      $dadosform= [ 'dataini' => '01/01/2020',
      'datafim' => '01/03/2020',
      'estacao' => '1'
      ];
      $useragent='Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6';
      $ch = curl_init($url2);
      curl_setopt_array($ch, [
                              CURLOPT_COOKIESESSION => 1,
                              CURLOPT_COOKIEJAR => $cookie,
                              CURLOPT_COOKIEFILE => $cookie,
                              CURLOPT_USERAGENT => $useragent,
                              CURLOPT_AUTOREFERER => 1,
                              CURLOPT_URL => $url2,
                              CURLOPT_POST => 1,
                              CURLOPT_RETURNTRANSFER => 1,
                              CURLOPT_FOLLOWLOCATION => 0,
                              CURLOPT_USERPWD => $username.":".$password,
                              CURLOPT_VERBOSE => 1 ,
                              CURLINFO_HEADER_OUT => 1,
                              CURLOPT_POSTFIELDS => $dadosform,
      ]);
      $resultado = curl_exec($ch);
      $errno = curl_errno($ch);
      echo "<br>Login: ". curl_strerror($errno).'<hr>';
      echo '<hr>';
      if($errno == 0) {
          print_r($resultado);
      }

      curl_close($ch);
      echo '<br>[FIM]';
       
    • By fideles
      Fala pessoal, tudo na paz? Como anda a quarentena ? Todos se cuidando....
       
      Seguinte, uma dúvida ou navalhada minha,
       
      Tenho um form simples, básico mesmo onde trampo, só para fazermos levantamento quando alguém chega.
       
      Nome da pessoa
      Um regime de contratação (CLT ou PJ) (input do tipo radio) (Nos value dos input radio tem CLT e PJ)
      Nome da empresa (campo oculto) (aqui funciona na boa)
       
      Preciso fazer com que se a pessoa clicar em PJ fazer ela preencher obrigatoriamente o campo "Nome da empresa" se ela for CLT não faz nada.
       
      Já tentei da seguinte forma e não da certo, talvez esteja errando por bobeira.
       
      if(empty($tipo_contratacao == "PJ")) { echo "<meta http-equiv='refresh' content='0; pesquisa_retorno_2.php'><script>alert('O campo nome da empresa não foi preenchido')</script>" ; return false; }  
      Alguém tem uma luz ?
       
      Obrigado.
    • By Alberto Nascimento
      Como faço para inserir data e horário no campo abaixo?
       
      <input name="horarioatual" id="horarioatual" style="width: 366px" type="text" />  
      Quando utilizava no PHP 5.3 funcionava com "echo", porém agora não esta mais quando estou utilizando o PHP 5.6
       
      <?php echo "$date"; ?>  
    • By Alberto Nascimento
      Estou utilizando agora PHP 7.2 em meu servidor e gostaria de saber onde consigo baixar ou se teriam algum exemplo de formulario PHP que inserisse dados em um banco de dados mysql.
       
      Utilizo o seguinte abaixo:
       
      index.php
      <?php session_start(); ?> <!DOCTYPE html> <html lang="pt-br"> <head> <meta charset="utf-8"> <title>CRUD - Cadastrar</title> </head> <body> <h1>Cadastrar Usuário</h1> <?php if(isset($_SESSION['msg'])){ echo $_SESSION['msg']; unset($_SESSION['msg']); } ?> <form method="POST" action="processa.php"> <label>Nome: </label> <input type="text" name="nome" placeholder="Digite o nome completo"><br><br> <label>E-mail: </label> <input type="email" name="email" placeholder="Digite o seu melhor e-mail"><br><br> <input type="submit" value="Cadastrar"> </form> </body> </html> processa.php
       
      <?php session_start(); include_once("conexao.php"); $nome = filter_input(INPUT_POST, 'nome', FILTER_SANITIZE_STRING); $email = filter_input(INPUT_POST, 'email', FILTER_SANITIZE_EMAIL); //echo "Nome: $nome <br>"; //echo "E-mail: $email <br>"; $result_usuario = "INSERT INTO usuarios (nome, email, created) VALUES ('$nome', '$email', NOW())"; $resultado_usuario = mysqli_query($conn, $result_usuario); if(mysqli_insert_id($conn)){ $_SESSION['msg'] = "<p style='color:green;'>Usuário cadastrado com sucesso</p>"; header("Location: index.php"); }else{ $_SESSION['msg'] = "<p style='color:red;'>Usuário não foi cadastrado com sucesso</p>"; header("Location: index.php"); } conexao.php
      <?php $servidor = ""; $usuario = ""; $senha = ""; $dbname = ""; //Criar a conexao $conn = mysqli_connect($servidor, $usuario, $senha, $dbname); Com isto, esta retornando as mensagens de erro abaixo:
      Linha: 8
       
      Linha: 12
       
      Linha: 14
       
      Obrigado desde já !!
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.