Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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
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";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.
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
É 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 ?
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.
>
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";
Segue imagem
/applications/core/interface/imageproxy/imageproxy.php?img=http://www.makedesignbr.com.br/imagens/imaster-fabiano.png&key=2609749a8ffe61971c6a60e9916cd7eda428545fd0f68b6e059a1dbd70422e61" alt="imaster-fabiano.png" />
Gostaria que aparecesse makedesignbr.com.br
>
Segue imagem
/applications/core/interface/imageproxy/imageproxy.php?img=http://www.makedesignbr.com.br/imagens/imaster-fabiano.png&key=2609749a8ffe61971c6a60e9916cd7eda428545fd0f68b6e059a1dbd70422e61" alt="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.
>
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.
/applications/core/interface/imageproxy/imageproxy.php?img=http://www.makedesignbr.com.br/imagens/hotelweb-01.png&key=b2ec94de8aa8249b0cd8334e7d48fc34e8e4e35025339d3c549c97b76a3c7805" alt="hotelweb-01.png" />
Alguém!
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.
>
<?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
Não seria a página enviar_contato.php?
>
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.
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.
>
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
E qual é a dúvida ?
você já envia um email. Basta chamar denovo a função mail() e enviar outro email.