(RESOLVIDO)Mail php

Pessoal estou dificuldade em fazer a função do mail do php. Configurei tudo certinho como vi em alguns tutoriais, mas não envia de jeito nenhum. Segue meu form e o codigo do enviar, a mensagem a ser enviada não editei pois estava fazendo testes antes de montar tudo.

<div class="modal-content">
        <div class="modal-header">
          <button type="button" class="close" data-dismiss="modal">&times;</button>
          <h4 class="modal-title">Aprovação Contrato de Prestação de Serviços</h4>
        </div>

      <div class="modal-body">
        <p>DADOS DO CONTRATANTE</p>

        <form action="envia.php" class="form-horizontal" method="POST" name="frmContOrc" enctype="multipart/form-data">
              <div class="form-group">
                <label class="control-label col-sm-2" for="txtRazaosocial">Razão Social:</label>
                <div class="col-sm-8">
                  <input type="text" class="form-control" id="txtRazaosocial" name="txtRazaoSocial">
                </div>
              </div>

              <div class="form-group">
                <label class="control-label col-sm-2" for="txtNomefantasia">Nome Fantasia: *</label>
                <div class="col-sm-8">
                  <input type="text" class="form-control" id="txtNomefantasia" required>
                </div>
              </div>

              <div class="form-group">
                <label class="control-label col-sm-2" for="txtCnpj">CNPJ:</label>
                <div class="col-sm-3">
                  <input type="text" class="form-control cnpj" id="txtCnpj">
                </div>

                <label class="control-label col-sm-2 " for="txtIe">I.E.: </label>
                <div class="col-sm-3">
                  <input type="text" class="form-control ie" id="txtIe">
                </div>
              </div>

            <div class="form-group">
                <label class="control-label col-sm-2" for="txtEndereco">Endereço:</label>
                <div class="col-sm-5">
                  <input type="text" class="form-control" id="txtEndereco">
                </div>

                <label class="control-label col-sm-1" for="txtNumero">Nº: </label>
                <div class="col-sm-2">
                  <input type="text" class="form-control" id="txtNumero" >
                </div>
              </div>

              <div class="form-group">
                <label class="control-label col-sm-2" for="txtComp">Complemento:</label>
                <div class="col-sm-3">
                  <input type="text" class="form-control" id="txtComp" >
                </div>

                <label class="control-label col-sm-1" for="txtBairro">Bairro: </label>
                <div class="col-sm-4">
                  <input type="text" class="form-control" id="txtBairro" >
                </div>
              </div>

              <div class="form-group">
                <label class="control-label col-sm-2" for="txtCep">CEP:</label>
                <div class="col-sm-2">
                  <input type="text" class="form-control" id="txtCep" >
                </div>

                <label class="control-label col-sm-1" for="txtCidade">Cidade: </label>
                <div class="col-sm-3">
                  <input type="text" class="form-control" id="txtCidade" >
                </div>
              
              <label class="control-label col-sm-1" for="txtUf">UF: </label>
                <div class="col-sm-1">
                  <input type="text" class="form-control" id="txtUf" placeholder="" maxlength="2">
                </div>
              </div>

              <div class="form-group">
                <label class="control-label col-sm-2" for="txtEmail">Email: *</label>
                <div class="col-sm-8">
                  <input type="email" class="form-control" id="txtEmail" required>
                </div>
              </div>

              <div class="form-group">
                <label class="control-label col-sm-2" for="txtTel">Telefone: *</label>
                <div class="col-sm-8">
                  <input class="tel form-control" id="txtTel" type="tel" name="txtTel" required>
                </div>
              </div>

              <div class="form-group">
                <label class="control-label col-sm-2" for="txtContato">Contato: *</label>
                <div class="col-sm-8">
                  <input type="text" class="form-control" id="txtContato" placeholder="" required>
                </div>
              </div>

              <p>DADOS DO SISTEMA</p>
              <div class="form-group">
                <label class="control-label col-sm-2" for="txtSistema">Sistema: *</label>
                <div class="col-sm-8">
                  <input type="text" id="texto" class="form-control" id="txtSistema" required>
                </div>
              </div>
               <div class="form-group">
                <label class="control-label col-sm-5" for="txtQtdadeusu">Quantidade de Usuarios que irão usar o sistema: *</label>
                <div class="col-sm-2" required>
                  <input type="text" class="form-control" id="txtQtdadeusu" required>
                </div>
              </div>


              <div class="form-group">
                <div class="col-sm-offset-2 col-sm-2">
                  <button type="submit" class="btn btn-default" id="btnOrcamento" onclick="return validar()">Orçamento</button>
                </div>
                <div class="col-sm-offset-2 col-sm-2">
                  <button type="submit" class="btn btn-primary btn-lg" id="btnContratar" onclick="return validar()">Contratar</button>
                </div>
              </div>
          </form>

        </div><!--fim body-->

        <div class="modal-footer">
          
        </div>
      </div>`


`<?php

include('conexao.php');
	$envia = new conexao;
	$envia->conecta();

/* Verifica qual é o sistema operacional do servidor para ajustar o cabeçalho de forma correta. Não alterar */
if(PHP_OS == "Linux") $quebra_linha = "\n"; //Se for Linux
elseif(PHP_OS == "WINNT") $quebra_linha = "\r\n"; // Se for Windows
else die("Este script nao esta preparado para funcionar com o sistema operacional de seu servidor");
 		

	$emaildestinatario = "e-mail pa emvio";
	$assunto = "Contrato - Orçamento pelo site";

// Passando os dados obtidos pelo formulário para as variáveis abaixo
	$razaosocial 		= $_POST['txtRazaosocial'];
	$nomefantasia 		= $_POST['txtNomefantasia'];
	$cnjp 				= $_POST['txtCnpj'];
	$insce 				= $_POST['txtIe'];
	$end 				= $_POST['txtEndereco'];
	$numero 			= $_POST['txtNumero'];
	$complemento 		= $_POST['txtComp'];
	$bairro 			= $_POST['txtBairro'];
	$cep 				= $_POST['txtCep'];
	$cidade 			= $_POST['txtCidade'];
	$estado 			= $_POST['txtUf'];
	$email 				= $_POST['txtEmail'];
	$telefone 			= $_POST['txtTel'];
	$contato 			= $_POST['txtContato'];
	$sistema 			= $_POST['txtSistema'];
	$usuarios 			= $_POST['txtQtdadeusu'];
	$data_envio 		= date('d/m/Y');
	$hora_envio 		= date('H:i:s');
 
 
/* Montando a mensagem a ser enviada no corpo do e-mail. */
$mensagemHTML = '<P>Esse email &eacute; um teste enviado no formato HTML via PHP mail();!</P>
<P>Aqui est&aacute; a mensagem postada por voc&ecirc; formatada em HTML:</P>
<p><b><i>'.$razaosocial.'</i></b></p>
<hr>';
 
 
/* Montando o cabeçalho da mensagem */
$headers = "MIME-Version: 1.1".$quebra_linha;
$headers .= "Content-type: text/html; charset=iso-8859-1".$quebra_linha;
// Perceba que a linha acima contém "text/html", sem essa linha, a mensagem não chegará formatada.
$headers .= "From: ".$email.$quebra_linha;
$headers .= "Return-Path: " . $email . $quebra_linha;
 
/* Enviando a mensagem */
mail($emaildestinatario, $assunto, $mensagemHTML, $headers, "-r". $email);
 

header("Location: index.php");

?>`

Oi Anny, no momento não tive como testar seus códigos por estar com dispositivo portátil, mas vou te passar a assim que puder a função que eu uso no meu projeto, ela funcionar perfeitamente…fica com uma dica por enquanto…

Não sei o seu nível em php e nem se você pretende fazer depois o que eu sugerir. Você vai enviar muitos POSTS , e eles estão aceitando o que vier dos inputs, sugiro você fazer um “Sanitize”, uma limpeza assim dizendo, para melhorar a segurança da entrada dos dados na sua data base. Use str_replace nos POST para filtrar apenas números de 0-9, letras de a-z, i para case sensitive, pesquise se tiver usando o mysql, sobre mysqli_real_scape

Exemplo para a variável $telefone

$telefone = preg_replace('#[0-9]#', '', $_POST['txtTelefone']);
// agora so entra números no banco de dados por esse POST

$mensagemHTML = preg_replace('#[^a-z0-9]#i', ' ', $_POST['mensagem']);

Agora a mensagem só recebe letras de a-z maiúsculas e minúsculas, e números de 0-9

Olá Renato muito obrigada, vou fazer isso que você falou. Obrigada pela dica.

1 curtida

Só tive tempo agora, olhei seu script para enviar o email e não vi muita diferença do meu…mesmo assim vou te passar caso você não tenha conseguido.

<?php
        $to = "$email"; // Para quem o email será enviado?                             
        $from = "xxxxxxxxxx@meuSite.com.br"; //Aqui entra o email do Site, não pode ser Gmail, Hotmail ou outro serviço gratuito né isso :smiley:";
        $assunto = 'Cadastro de usuários'; //Por exemplo
        $mensagem = '<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Cadastro</title</head><body style="margin:0px;font-family:Tahoma, Geneva, sans-serif;"></body</html>'; //Aqui você pode criar um novo documento HTML com CSS e colocar aqui dentro da mensagem.
        $headers = "From: $de\n";
        $headers .= "MIME-Version: 1.0\n";
        $headers .= "Content-type: text/html; charset=iso-8859-1\n";
        mail($para, $assunto, $mensagem, $headers);
?>

Vê se funciona, porque não mudou quase nada do seu…Caso não funcione, a gente tenta resolver!!!

Oi Renato, então eu testei e não funcionou. Enviei o form de manhã e não chegou ate o momento no e-mail. Não da erro nem nada.

qual é o retorno da função mail?

http://php.net/manual/en/function.mail.php

habilite todos os warnings e tente ver se algo de errado acontece.

salvo engano vc precisa de sendmail instalado na maquina

Eu ativei os warnings ai deu somente esse.

Warning: Cannot modify header information - headers already sent by (output started at /home/smartsistemas/www/novob/enviateste.php:6) in /home/smartsistemas/www/novob/enviateste.php on line 31

vc esta tentando setar um header http apos ter impresso algo e ai nao vai funcionar corretamente.

1 curtida

Estranho, esses emails devem chegar quase que instantâneo. Faz o seguinte, se não tiver resolvido o problema, e se você puder, me envia seu arquivo conexão.php, porque eu vi que você está usando classes, ai eu faço uns testes aqui no meu servidor e te dou um retorno.

Vou salvar seu FORM e aguardar o conexao.php para testar!

Bom diia! Nossa Renato muito obrigada por tentar me ajudar, Mas eu consegui fazer enviar o/
Meu form estava sem a tag name, só inseri as tag, e dei uma ajeitada no código do enviar, sem nada de mais.
AI ele enviou no mesmo instante.

1 curtida

E obrigada a todos que tentaram me ajudar tbm :wink:

1 curtida

Beleza, boa sorte no projeto!!!

1 curtida