Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

williamramone

Mensagem enviada com conteúdo no campo assunto (subject)

Recommended Posts

Prezados, sou iniciante em PHP e desenvolvimento HTML e me deparo com um problema nas mensagem que são enviadas pela página de contato. Eu consegui fazer o arquivo contact.php enviar as mensagens inseridas no site, entretanto, o conteúdo das mensagens está sendo adicionado ao assunto do e-mail.

 

Além disso, também são inseridas no assunto outras informações de formatação, tais como: Você recebeu um contato de fulano. "mensagem inserida pelo usuário". Retorne o quanto antes para fulano.

 

Agradeço se puderem me ajudar com este problema. Abaixo destaco o código do arquivo contact.php

<?php

if(!$_POST) exit;

// Email address verification, do not edit.
function isEmail($email) {
	return(preg_match("/^[-_.[:alnum:]]+@((([[:alnum:]]|[[:alnum:]][[:alnum:]-]*[[:alnum:]])\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|c*|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|você|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)$|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i",$email));
}

if (!defined("PHP_EOL")) define("PHP_EOL", "\r\n");

$name     = $_POST['name'];
$email    = $_POST['email'];
$subject  = $_POST["Novo Contato"];
$comments = $_POST['comments'];

if(trim($name) == '') {
	echo '<div class="error_message">Insira seu nome.</div>';
	exit();
} else if(trim($email) == '') {
	echo '<div class="error_message">Verifique o e-mail digitado.</div>';
	exit();
} else if(!isEmail($email)) {
	echo '<div class="error_message">Voce inseriu um e-mail invalido, tente novamente.</div>';
	exit();
}

if(trim($comments) == '') {
	echo '<div class="error_message">Insira uma mensagem.</div>';
	exit();
} else if(get_magic_quotes_gpc()) {
	$comments = stripslashes($comments);
exit();
}


// Configuration option.
// Enter the email address that you want to emails to be sent to.
// Example $address = "joe.doe@yourdomain.com";

//$address = "example@themeforest.net";
$address = "william@higgsconsultoria.com.br";


// Configuration option.
// i.e. The standard subject will appear as, "You've been contacted by John Doe."

// Example, $e_subject = '$name . ' has contacted you via Your Website.';

$subject = 'Novo contato pelo site Megadef' . PHP_EOL;


// Configuration option.
// You can change this if you feel that you need to.
// Developers, you may wish to add more fields to the form, in which case you must be sure to add them here.

$e_body = "A Megadef recebeu um contato de $name. Responda o quanto antes." . PHP_EOL . PHP_EOL;
$e_content = "\"$comments\"" . PHP_EOL . PHP_EOL;
$e_reply = "Contate $name pelo email $email" . PHP_EOL . PHP_EOL; 

$msg = wordwrap( $e_body . $e_content . $e_reply, 70 );

$headers = "De: $email" . PHP_EOL;
$headers .= "Responder para: $email" . PHP_EOL;
$headers .= "MIME-Version: 1.0" . PHP_EOL;
$headers .= "Content-type: text/plain; charset=utf-8" . PHP_EOL;
$headers .= "Content-Transfer-Encoding: quoted-printable" . PHP_EOL;
//$headers .= "$e_body";
$headers .= "$msg" . PHP_EOL;

if(mail($address, $msg, $headers)) {

	// Email has sent successfully, echo a success page.

	echo "<fieldset>";
	echo "<div id='success_page'>";
	echo "<h1>Mensagem Enviada com Sucesso.</h1>";
	echo "<p>Obrigado pelo contato <strong>$name</strong>, em breve lhe retornaremos.</p>";
	echo "</div>";
	echo "</fieldset>";

} else {

	echo 'ERROR!';

} 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Preste atenção à ordem dos parâmetros da função mail: http://php.net/manual/pt_BR/function.mail.php

O segundo parâmetro é o assunto, e você está passando o corpo da mensagem. Por isso o problema

 

 

Uma dica: recomendo usar SMTP autenticado em vez de mail(). Haverá menos riscos de uma mensagem ser considerada spam. Recomendo usar o PHPMailer

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por wtomtom
      Boa tarde, estou criando um formulário de contato mas preciso que em cada contato seja incluindo um numero no campo assunto para ter um controle. Tipo assim esse numero fosse aumentando quando um usuário enviar um contato para mim como se fosse um numero de pedido só que no formulário tem como fazer isso se sim preciso de ajuda. Segui meu código desde já agradeço a todos.
       
      <?php

      $date = date("d/m/Y h:i");
      $ip = getenv("REMOTE_ADDR");
      $navegador = $_SERVER['HTTP_USER_AGENT'];
      $nomeremetente = $_POST["nomeremetente"];
      $emailremetente = $_POST["emailremetente"];
      $email = 'seuemail@seusite.com.br'; // Inserir o endereço de email a qual você quer que chegue
      $telefone = $_POST["telefone"];
      $assunto = $_POST["assunto"];
      $mensagem = $_POST["mensagem"];





      $MailRecipiente = $email;
      $MailAssunto = $assunto;
      $headers = "MIME-Version: 1.0\r\n";
      $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
      $headers .= "From: $email\r\n";
      $headers .= "Return-Path: $email\r\n";

      $msg = '
      <i>Enviado por:</i> <br/><br/>
      <b>Nome:</b> '.$nomeremetente.'<br/>
      <b>Email:</b> '.$emailremetente.'<br/>
      <b>Telefone:</b> '.$telefone.'<br/>
      <b>Assunto:</b> '.$assunto.'<br/><br/>
      <b>Mensagem:</b> '.$mensagem.'<br/><br/>
      <b>IP do Visitante:</b> '.$ip.'<br/>
      <b>Navegador do Visitante:</b> '.$navegador.'<br/>
      <b>Data e Hora:</b> '.$date.'<br/>
      ';

      mail($MailRecipiente,$MailAssunto,$msg,$headers);


      // AQUI SE COLOCA A COPIA CASO QUEIRA QUE O FORMULARIO ENVIE (DUPLIQUE QUANTAS VEZES QUISER)

      mail('seuemail@domino.com.br',$MailAssunto,$msg,$headers);


      //AUTO RESPOSTA
      $headers_ = "MIME-Version: 1.0\r\n";
      $headers_ .= "Content-type: text/html; charset=iso-8859-1\r\n";
      $headers_ .= "From: $email\r\n";
      $site = "www.xxxx.com.br";
      $titulo = "Titulo da Auto Resposta";
      $mensagem = "
      <br/>
      Mensagem da Auto Resposta!<br/>

      Obrigado,<br/>
      Finalização<br/>";

      mail($emailremetente,$titulo,$mensagem,$headers_);

      echo "<script>location.href='sucesso.php'</script>"; // Página que será redirecionada

      ?>
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.