Ir para conteúdo

POWERED BY:

Arquivado

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

F Lima

[Resolvido] Form com autoresposta

Recommended Posts

Boa noite à todos,

 

Já que não teve o jogo do Brasil, voltei a trabalhar e pintou um pedido de inclusão inesperada no formulário. Pesquisei pela internet, mas todos deram erros então estou recorrendo à vocês.

 

<?php

   $name     =   $_POST['name'];
   $email    =   $_POST['email'];
   $subject  =   $_POST['subject'];
   $message  =   $_POST['message'];

   $headers  = "From: $email\r\n";
   $headers .= "Reply-To: $email\r\n";

      $corpo = "Formulário enviado\n";
      $corpo .= "Nome: " . $name . "\n";
      $corpo .= "Email: " . $email . "\n";
      $corpo .= "Comentários: " . $message . "\n";

      $email_to = 'seu-email@seu-dominio.com.br';

   if(mail($email_to, $subject, $corpo, $headers))
{
       echo 'sent'; // we are sending this text to the ajax request telling it that the mail is sent..
   }
else
{
       echo 'failed';// ... or this one to tell it that it wasn't sent
   }
?>

 

O formulário está redondinho, porém gostaria desta ajuda.

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

E qual é a dúvida ?

 

você já envia um email. Basta chamar denovo a função mail() e enviar outro email.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode enviar duas vezes o e-mail, mas não vejo essa necessidade. Utilize as particularidades do e-mail, como múltiplo destinatário, CC ou BCC (Blind Carbon Copy ou Cópia Oculta). Depende do que você quiser utilizar.Se você não quiser que nenhum usuário veja o remetente do outro, coloque ambos em Bcc.

 

Múltiplo destinatário:

user@example.com

user@example.com, anotheruser@example.com

User <user@example.com>

User <user@example.com>, Another User <anotheruser@example.com>

Code:

$email_to = 'seu-email@seu-dominio.com.br, anotheruser@example.com';

 

CC e CCo, code:

$headers  = "From: $email\r\n";
$headers .= "Reply-To: $email\r\n";
$headers .= 'Cc: birthdayarchive@example.com' . "\r\n";
$headers .= 'Bcc: birthdaycheck@example.com' . "\r\n";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi perfeitamente,

 

Mas o que gostaria mesmo, seria uma resposta ao remetente que o formulário foi enviado com sucesso, dizendo que em breve estaremos retornando com a resposta ou ajuda solicitada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ninguém para poder me ajudar?

Acontece que no caso da ajuda do Gabriel Heming, eu teria que ter um outro email , porém gostaria que a pessoa que está preenchendo o formulário receba no seu email uma confirmação de que seu formulário foi enviado com sucesso.

 

Uma outra dúvida que apareceu. Colocarei o cod do formulário em questão e o arquivo php de envio.

 

página contact.html

form action="enviar_contato.php" method="post" id="contact_form">
       <h3>formulário de contato</h3><br />
       <div class="hr dotted clearfix"></div>
       <ul>						
           <li class="clearfix"> <label for="name">Nome</label><input type="text" name="name" id="name" placeholder="Digite seu nome completo" />
               <div class="clear"></div>
           </li>
           <li class="clearfix"> <label for="email">Email</label><input type="text" name="email" id="email" placeholder="Digite um email válido" />
               <div class="clear"></div>
           </li>
           <li class="clearfix"> <label for="subject">Assunto</label><input type="text" name="subject" id="subject" placeholder="Qual assunto deste contato? " />
               <div class="clear"></div>
           </li>
           <li class="clearfix"> <label for="message">Mensagem</label><textarea name="message" id="message" rows="30" cols="30" placeholder="Deixe aqui uma mensagem"></textarea>
               <div class="clear"></div>
           </li>
           <li class="clearfix">
               <div id="button"><input type="submit" id="send_message" class="button" value="Enviar" /></div>
		</li>
       </ul>
   </form>

Em qual parte do formulário e como, colocaria um evento para abrir uma caixa do win ou mac dizendo que foi enviado com sucesso com o botão de OK, no arquivo html ou no php?

 

pag enviar_contato.php

<?php

   $name     =   $_POST['name'];
   $email    =   $_POST['email'];
   $subject  =   $_POST['subject'];
   $message  =   $_POST['message'];

   $headers  = "From: $email\r\n";
   $headers .= "Reply-To: $email\r\n";

      $corpo = "Formulário enviado\n";
      $corpo .= "Nome: " . $name . "\n";
      $corpo .= "Email: " . $email . "\n";
      $corpo .= "Comentários: " . $message . "\n";

      $email_to = 'fabianoshingai@gmail.com';


   if(mail($email_to, $subject, $corpo, $headers))
	{
		echo 'sent'; // we are sending this text to the ajax request telling it that the mail is sent..      
   	}
else
	{
       	echo 'failed';// ... or this one to tell it that it wasn't sent    
   	}
?>

E neste aqui seria aquela dúvida em relação ao envio de uma resposta automática ao remetente com uma mensagem de agradecimento e blá-blá-blá.

 

obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

É só chamar novamente a função mail() enviando a mensagem para o cara que enviou o formulário.

 

Eu te disse isso na minha primeira resposta. Qual é a dúvida ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Problema resolvido em relação da auto-resposta,

 

Uma outra dúvida surgiu e gostaria de um auxílio.

 

O destinatário recebe o email de confirmação, porém aparece o remetente do servidor de hospedagem, o hotel da web informou no suporte que eu deveria declarar o remetente no arquivo php.

 

Como seria isso?

 

Obrigado mais uma vez.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Problema resolvido em relação da auto-resposta,

 

Uma outra dúvida surgiu e gostaria de um auxílio.

 

O destinatário recebe o email de confirmação, porém aparece o remetente do servidor de hospedagem, o hotel da web informou no suporte que eu deveria declarar o remetente no arquivo php.

 

Como seria isso?

 

Obrigado mais uma vez.

 

Do mesmo jeito que você faz para enviar o formulário do usuário:

$headers  = "From: $email\r\n";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Segue imagem

 

imaster-fabiano.png

 

Gostaria que aparecesse makedesignbr.com.br

 

Vai precisar acionar o suporte (decente) do seu servidor.

 

Verifique se há algum wiki ou se alguém já descobriu como configurar isso.

 

Envolve alguns passos, inclusive alterar os nameservers do servidor onde você está localizado. Se for um servidor compartilhado, provavelmente você não tem acesso a isso.

 

Eles precisam descobrir de onde - qual usuário - o email vem. Coisa que, pelo remetente do email, já sabem.

Depois configurar o relay de emails para aceitar os headers 'From:' que você desejar passar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vai precisar acionar o suporte (decente) do seu servidor.

 

Verifique se há algum wiki ou se alguém já descobriu como configurar isso.

 

Envolve alguns passos, inclusive alterar os nameservers do servidor onde você está localizado. Se for um servidor compartilhado, provavelmente você não tem acesso a isso.

 

Eles precisam descobrir de onde - qual usuário - o email vem. Coisa que, pelo remetente do email, já sabem.

Depois configurar o relay de emails para aceitar os headers 'From:' que você desejar passar.

 

Fiz isso e enviaram esta resposta.

 

hotelweb-01.png

 

Alguém!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Salve como PHP e mude alguns itens de e-mail... só isso, o layout é por sua conta...

 

<html>
<head>
<title>E-mail</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body text="#000000" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<?
echo "<form action='$PHP_SELF?$QUERY_STRING' method='post'>";
echo "<input type='hidden' name='action' value='Envia'>";
?> <br>
<table width="378" border="0" cellspacing="0" cellpadding="0" align="center">
 <tr bgcolor="#A3BAD6"> 
   <td valign="top" colspan="2">      <div align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">Preencha 
       o formulário abaixo e envie<br>
       </font></div>
   </td>
 </tr>
 <tr bgcolor="#A3BAD6"> 
   <td valign="top" width="167"> 
     <div align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">Seu 
       e-mail *</font></div>
   </td>
   <td width="272"> <font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000"> 
     <input name="email" type="text" size="30" maxlength="65">
     </font></td>
 </tr>
 <tr bgcolor="#A3BAD6"> 
   <td valign="top" width="167"> 
     <div align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">Nome 
       completo:</font></div>
   </td>
   <td width="272"> <font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000"> 
     <input name="cp1" type="text" size="30" maxlength="65">
     </font></td>
 </tr>
 <tr bgcolor="#A3BAD6"> 
   <td valign="top" width="167"> 
     <div align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">Endereço:</font></div>
   </td>
   <td width="272"> <font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000"> 
     <input name="cp2" type="text" size="30" maxlength="65">
     </font></td>
 </tr>
 <tr bgcolor="#A3BAD6"> 
   <td valign="top" width="167"> 
     <div align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">Cidade:</font></div>
   </td>
   <td width="272"> <font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000"> 
     <input name="cp3" type="text" size="30" maxlength="65">
     </font></td>
 </tr>
 <tr bgcolor="#A3BAD6"> 
   <td valign="top" width="167"> 
     <div align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">Estado:</font></div>
   </td>
   <td width="272"> <font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000"> 
     <input name="cp4" type="text" size="30" maxlength="65">
     </font></td>
 </tr>
 <tr bgcolor="#A3BAD6"> 
   <td valign="top" width="167"> 
     <div align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">Fone:</font></div>
   </td>
   <td width="272"> <font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000"> 
     <input name="cp5" type="text" size="30" maxlength="65">
     </font></td>
 </tr>
 <tr bgcolor="#A3BAD6"> 
   <td valign="top" width="167"> 
     <div align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">Orçamento:</font></div>
   </td>
   <td width="272"> <font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000"> 
     <textarea name="cp6" cols="30" rows="7"></textarea>
     </font></td>
 </tr>
 <tr bgcolor="#999999"> 
   <td colspan="2" valign="top"> 
     <div align="center"> 
       <input type="submit" value="Enviar" name="submit">
   </div>    </td>
 </tr>
</table>
<div align="left"> 
 <p>  </p>
</div>
</body>
</html>
<?
if( $action == "Envia" ) {
       $erro="";
       if (!ereg("^([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)) {
         $erro .= "<b>O endereço de e-mail do destinatário está incorreto.<br></b>\n";
         }
       $mensresp="
         Seu e-mail foi bem recebido.
     Aguarde nosso retorno!



";
       if ($erro == "") {
         $wwwIP=getenv('REMOTE_ADDR');
         $titulo_msg="Resposta automática";
         $seuemail="seu@email.com.br";
         mail ("$email","$titulo_msg","
         \r\n$mensresp\r\n
         ","From:$seuemail");
         mail ("$seuemail","E-mail do Site","
         \n$email lhe enviou uma mensagem:\n\nNome completo: $cp1\nEndereço: $cp2\nCidade: $cp3\nEstado: $cp4\nFone: $cp5\nOrçamento: $cp6\n\n\n
         \n".gethostbyaddr($wwwIP)."-".gethostbyname($wwwIP)."
         ","From:$email");
         echo ("<b>E-mail Enviado com sucesso</b><br><br>");
       } else {
         echo ("$erro");
       }
}
?>

 

Ninguém para poder me ajudar?

Acontece que no caso da ajuda do Gabriel Heming, eu teria que ter um outro email , porém gostaria que a pessoa que está preenchendo o formulário receba no seu email uma confirmação de que seu formulário foi enviado com sucesso.

 

Uma outra dúvida que apareceu. Colocarei o cod do formulário em questão e o arquivo php de envio.

 

página contact.html

form action="enviar_contato.php" method="post" id="contact_form">
       <h3>formulário de contato</h3><br />
       <div class="hr dotted clearfix"></div>
       <ul>						
           <li class="clearfix"> <label for="name">Nome</label><input type="text" name="name" id="name" placeholder="Digite seu nome completo" />
               <div class="clear"></div>
           </li>
           <li class="clearfix"> <label for="email">Email</label><input type="text" name="email" id="email" placeholder="Digite um email válido" />
               <div class="clear"></div>
           </li>
           <li class="clearfix"> <label for="subject">Assunto</label><input type="text" name="subject" id="subject" placeholder="Qual assunto deste contato? " />
               <div class="clear"></div>
           </li>
           <li class="clearfix"> <label for="message">Mensagem</label><textarea name="message" id="message" rows="30" cols="30" placeholder="Deixe aqui uma mensagem"></textarea>
               <div class="clear"></div>
           </li>
           <li class="clearfix">
               <div id="button"><input type="submit" id="send_message" class="button" value="Enviar" /></div>
		</li>
       </ul>
   </form>

Em qual parte do formulário e como, colocaria um evento para abrir uma caixa do win ou mac dizendo que foi enviado com sucesso com o botão de OK, no arquivo html ou no php?

 

pag enviar_contato.php

<?php

   $name     =   $_POST['name'];
   $email    =   $_POST['email'];
   $subject  =   $_POST['subject'];
   $message  =   $_POST['message'];

   $headers  = "From: $email\r\n";
   $headers .= "Reply-To: $email\r\n";

      $corpo = "Formulário enviado\n";
      $corpo .= "Nome: " . $name . "\n";
      $corpo .= "Email: " . $email . "\n";
      $corpo .= "Comentários: " . $message . "\n";

      $email_to = 'fabianoshingai@gmail.com';


   if(mail($email_to, $subject, $corpo, $headers))
	{
		echo 'sent'; // we are sending this text to the ajax request telling it that the mail is sent..      
   	}
else
	{
       	echo 'failed';// ... or this one to tell it that it wasn't sent    
   	}
?>

E neste aqui seria aquela dúvida em relação ao envio de uma resposta automática ao remetente com uma mensagem de agradecimento e blá-blá-blá.

 

obrigado

 

Cara utilize este que lhe enviei, é bem mais facil e simples... se desejar que o retorno seja em html, como enviar um arquivo .jpg é só mudar algumas classes e tudo funciona direitinho.

Salve este arquivo em uma página e abra através do navegador... mude só o seu e-mail e já está pronto pata testar. envie deste form um e-mail para você memso e verá a resposta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

<?php

   $name     =   $_POST['name'];
   $email    =   $_POST['email'];
   $subject  =   $_POST['subject'];
   $message  =   $_POST['message'];

   $headers  = "From: $email\r\n";
   $headers .= "Reply-To: $email\r\n";

      $corpo = "Formulário enviado\n";
      $corpo .= "Nome: " . $name . "\n";
      $corpo .= "Email: " . $email . "\n";
      $corpo .= "Comentários: " . $message . "\n";

      $email_to = 'seu-email@seu-dominio.com.br';

   if(mail($email_to, $subject, $corpo, $headers))
{
       echo 'sent'; // we are sending this text to the ajax request telling it that the mail is sent..
   }
else
{
       echo 'failed';// ... or this one to tell it that it wasn't sent
   }
?>

 

 

Gostaria de uma ajuda, continuo usando o mesmo código em php acima, porém estou fazendo um form com validação spry e na hora de clicar em ENVIAR, abre uma tela em branco escrito SENT.

 

Gostaria da ajuda para saber onde configurar está página em branco, segue o código do form.

 



	<form action="enviar_contato.php" method="post" id="formBotton">
		<h1>Contato</h1>
			  <ul>
				  <li class="clearfix">
					  <label for="nome">Nome*</label>
					  <span id="spryNome">
					  <input type="text" name="name" id="name" placeholder="Digite seu nome completo" />
					  <span class="textfieldRequiredMsg">Campo obrigatório.</span><span class="textfieldMinCharsMsg">Nome deve conter pelo menos 4 letras.</span><span class="textfieldMaxCharsMsg">Nome muito grande.</span></span>
				</li>

				<li class="clearfix">
					<label for="nome">E-mail*</label>
					<span id="spryEmail">
					<input type="text" name="email" id="email" placeholder="Digite um email válido" />
					<span class="textfieldRequiredMsg">Campo obrigatório.</span><span class="textfieldInvalidFormatMsg">Email inválido.</span></span>
				</li>

				<li class="clearfix">
					<label for="subject">Assunto*</label>
					<span id="spryAssunto">
					<input type="text" name="subject" id="subject" placeholder="Qual assunto deste contato? " />
					<span class="textfieldRequiredMsg">Campo obrigatório.</span></span>
				</li>

				<li class="clearfix">
					<label for="message">Mensagem*</label>
					<span id="spryMsn">
					<textarea name="message" id="message" rows="5" cols="30" placeholder="Deixe aqui uma mensagem"></textarea>
					<span class="textareaRequiredMsg">Campo obrigatório.</span></span>
				</li>

                   <li class="clearfix">
                   	<div id="button"><input type="submit" id="send_message" class="button" value="Enviar" /></div>
                   </li>
			</ul>
       </form>

<script type="text/javascript">
var sprytextfield1 = new Spry.Widget.ValidationTextField("spryNome", "none", {minChars:4, maxChars:60});
var sprytextfield2 = new Spry.Widget.ValidationTextField("spryEmail", "email");
var sprytextfield3 = new Spry.Widget.ValidationTextField("spryAssunto", "none");
var sprytextarea1 = new Spry.Widget.ValidationTextarea("spryMsn");
</script>

 

Obrigado mais uma vez

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não seria a página enviar_contato.php?

Seria, mas onde no código que remete a esta página em branco escrito no topo esquerdo a palavra SENT?

 

Outra coisa tb que já testei 2 vezes e o email não chegou.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O action do form define para onde ele vai, logo:

<form action="enviar_contato.php" method="post" id="formBotton">

 

Sobre não estar chegando, isto pode ser ocasionado por dezenas de motivos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O action do form define para onde ele vai, logo:

<form action="enviar_contato.php" method="post" id="formBotton">

 

Sobre não estar chegando, isto pode ser ocasionado por dezenas de motivos.

 

Acabei desistindo de usar o spry e fiz da seguinte forma como já tinha feito antes ...

 

Para quem quiser usar o cod, aí esta!

 

arquivo do form em html

	<form action="enviar_contato.php" method="post" id="formBotton">
		<h1>Contato</h1>
			<ul>
				<li class="clearfix">
					<label for="nome">Nome*</label>
					<input type="text" name="name" id="name" placeholder="Digite seu nome completo" />
					<div class="clear"></div>
                   	<p id='name_error' class='error'>Insira seu nome completo</p>
				</li>

				<li class="clearfix">
					<label for="nome">E-mail*</label>
					<input type="text" name="email" id="email" placeholder="Digite um email válido" />
					<div class="clear"></div>
					<p id='email_error' class='error'>Entre com email válido</p>
				</li>

				<li class="clearfix">
					<label for="subject">Assunto*</label>
					<input type="text" name="subject" id="subject" placeholder="Qual assunto deste contato? " />
					<div class="clear"></div>
					<p id='subject_error' class='error'>Escreva um assunto do seu interesse</p>
				</li>

				<li class="clearfix">
					<label for="message">Mensagem*</label>
					<textarea name="message" id="message" rows="5" cols="30" placeholder="Deixe aqui uma mensagem"></textarea>
					<div class="clear"></div>
					<p id='message_error' class='errorMsn'>Deixe uma mensagem</p>
				</li>

                   <li class="clearfix">
					<p id='mail_success' class='success'>Obrigado! Seu formulário foi enviado com sucesso.</p>
					<p id='mail_fail' class='error'>Desculpe! ocorreu um erro, por favor, tente mais tarde.</p>
                   	<div id="button"><input type="submit" id="send_message" class="button" value="Enviar" /></div>
                   </li>
			</ul>
       </form>

 

arquivo js

$(document).ready(function(){
		$('#send_message').click(function(e){

			e.preventDefault();

			var error = false;
			var name = $('#name').val();
			var email = $('#email').val();
			var subject = $('#subject').val();
			var message = $('#message').val();


			if(name.length == 0){
				var error = true;
				$('#name_error').fadeIn(500);
			}else{
				$('#name_error').fadeOut(500);
			}
			if(email.length == 0 || email.indexOf('@') == '-1'){
				var error = true;
				$('#email_error').fadeIn(500);
			}else{
				$('#email_error').fadeOut(500);
			}
			if(subject.length == 0){
				var error = true;
				$('#subject_error').fadeIn(500);
			}else{
				$('#subject_error').fadeOut(500);
			}
			if(message.length == 0){
				var error = true;
				$('#message_error').fadeIn(500);
			}else{
				$('#message_error').fadeOut(500);
			}

			if(error == false){
				$('#send_message').attr({'disabled' : 'true', 'value' : 'Sending...' });

				$.post("enviar_contato.php", $("#contact_form").serialize(),function(result){
					if(result == 'sent'){
						 $('#button').remove();
						$('#mail_success').fadeIn(500);
					}else{
						$('#mail_fail').fadeIn(500);
						$('#send_message').removeAttr('disabled').attr('value', 'Submit');
					}
				});
			}
		});    
	});

 

Agora o css vai de cada um. Abços e obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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