Bom dia,
Tenho um site hospedado na Locaweb (Hospedagem Linux), e estou enviando um formulário de e-Mail via Ajax ... o envio está ocorrendo corretamente, o problema está na quantidade de mensagens. Ao invés de enviar apenas uma mensagem, está disparando 5 mensagens iguais, vejam a imagem "caixa de entrada" anexada à esse tópico.
Script PHP:
<?php
require'mailer/PHPMailerAutoload.php';
$mail_restaurante =newPHPMailer;
$mail_cliente =newPHPMailer;// Campos do formulario
$nome = filter_input(INPUT_POST,'nome', FILTER_SANITIZE_SPECIAL_CHARS);
$email = filter_input(INPUT_POST,'email', FILTER_SANITIZE_SPECIAL_CHARS);
$dataReserva = filter_input(INPUT_POST,'data-reserva', FILTER_SANITIZE_SPECIAL_CHARS);
$horaReserva = filter_input(INPUT_POST,'hora-reserva', FILTER_SANITIZE_SPECIAL_CHARS);
$qtdPessoas = filter_input(INPUT_POST,'qtd-pessoas', FILTER_SANITIZE_SPECIAL_CHARS);//====================================================//Informacoes dos e-Mails **************************////====================================================
$infoEmail['email']='email@email.com.br';
$infoEmail['senha']='secreto';
$infoEmail['assunto_restaurante']="Solicitação de reserva para {$nome}";
$infoEmail['mensagem_restaurante']="
<p>{$nome} com o e-mail {$email}, deseja efetuar uma reserva para o dia {$dataReserva}, horário {$horaReserva} para {$qtdPessoas}.</p>
<p>
<b>Nome:</b> {$nome} <br>
<b>e-Mail:</b> {$email} <br>
<b>Data:</b> {$dataReserva} <br>
<b>Horário:</b> {$horaReserva} <br>
<b>Nº de pessoas:</b> {$qtdPessoas}<br>
</p>
";
$infoEmail['assunto_cliente']='Restaurante :: Seu pedido foi recebido, aguarde nossa confirmação';
$infoEmail['mensagem_cliente']="
<p>Restaurante Romamia :: Seu pedido foi recebido, aguarde nossa confirmação</p>
<h3>Dados do seu pedido de reserva:</h3>
<p>
<b>Nome:</b> {$nome} <br>
<b>e-Mail:</b> {$email} <br>
<b>Data:</b> {$dataReserva} <br>
<b>Horário:</b> {$horaReserva} <br>
<b>Nº de pessoas:</b> {$qtdPessoas}<br>
</p>
";//Regex formato da data
$rgxFormatoData ='/^(0[1-9]|[12][0-9]|3[01])\/(0[1-9]|1[012])\/[12][0-9]{3}$/';
preg_match($rgxFormatoData, $dataReserva, $matches);//Data atual
$hoje =newDateTime('now',newDateTimeZone('America/Sao_Paulo'));
$hojeMais2Dias =newDateTime(' +2 day');//Campos preenchidosif(empty($nome)or empty($email)or empty($dataReserva)or empty($horaReserva)or empty($qtdPessoas)){
echo '<p style="color: red">Por favor, preencha todos os campos</p>';}//A data combina com o formato permitido? 00/00/0000
elseif($matches){//O dia escolhido obedece a regra de +2 dias?if($dataReserva < $hojeMais2Dias->format('d/m/Y')){
echo '<p style="color: red">Escolha uma data a partir de '. $hojeMais2Dias->format('d/m/Y').'</p>';}//Enviar mensagemelse{//========================================================//Mensagem para o restaurante **************************////========================================================
$mail->SMTPDebug=2;
$mail_restaurante->isSMTP();// Set mailer to use SMTP
$mail_restaurante->Host='email-ssl.com.br';// Specify main and backup SMTP servers
$mail_restaurante->SMTPAuth=true;// Enable SMTP authentication
$mail_restaurante->Username= $infoEmail['email'];// SMTP username
$mail_restaurante->Password= $infoEmail['senha'];// SMTP password
$mail_restaurante->SMTPSecure='tls';// Enable TLS encryption, `ssl` also accepted
$mail_restaurante->Port=587;// TCP port to connect to
$mail_restaurante->isHTML(true);// Set email format to HTML
$mail_restaurante->setFrom($infoEmail['email']);
$mail_restaurante->addAddress($infoEmail['email'],'Restaurante');// Add a recipient
$mail_restaurante->Subject= $infoEmail['assunto_restaurante'];//Here is the subject
$mail_restaurante->Body= $infoEmail['mensagem_restaurante'];//This is the HTML messageif(!$mail_restaurante->send()){
echo 'Erro ao enviar e-amil para - Mailer Error: '. $mail_cliente->ErrorInfo;}else{//====================================================//Mensagem para o cliente **************************////====================================================
$mail->SMTPDebug=2;
$mail_cliente->isSMTP();// Set mailer to use SMTP
$mail_cliente->Host='email-ssl.com.br';// Specify main and backup SMTP servers
$mail_cliente->SMTPAuth=true;// Enable SMTP authentication
$mail_cliente->Username= $infoEmail['email'];// SMTP username
$mail_cliente->Password= $infoEmail['senha'];// SMTP password
$mail_cliente->SMTPSecure='tls';// Enable TLS encryption, `ssl` also accepted
$mail_cliente->Port=587;// TCP port to connect to
$mail_cliente->isHTML(true);// Set email format to HTML
$mail_cliente->setFrom($infoEmail['email']);
$mail_cliente->addAddress($email, $nome);// Add a recipient
$mail_cliente->Subject= $infoEmail['assunto_cliente'];//Here is the subject
$mail_cliente->Body= $infoEmail['mensagem_cliente'];//This is the HTML message if(!$mail_cliente->send()){
echo 'Erro ao enviar e-amil para '. $email .' - Mailer Error: '. $mail_cliente->ErrorInfo;}else{
echo '<p style="color: green">Mensagem enviada com sucesso!</p>';
$mail_cliente->ClearAllRecipients();}//else cliente
$mail_restaurante->ClearAllRecipients();}//else restaurante }//else validacao}//elseif matches
Script JQuery:
(function ($) {
var form_reservas = $('#reservas');
var tema = '/wp-content/themes/restaurante/';
var script_reservas = tema + 'reservas/reservasRestaurante.php';
var status = $('#status-envio');
function retorno(data){
status.hide().html(data).fadeIn();
}
//Ao clicar em Submit
form_reservas.submit(function(event){
event.preventDefault();
var campos = form_reservas.serializeArray();
//Percorrendo os campos
$.map(campos, function(campo){
// ====== Minha enorme validação :P
} else {
$.ajax({
type: "POST",
url: script_reservas,
data: campos,
beforeSend: function(){
status.hide().html('<pstyle="color:#337AB7"><imgsrc="'+ tema +'images/loading_icon.svg"> Enviando ...</p>').fadeIn();
},
error: retorno,
success: retorno,
complete: function(){form_reservas.get(0).reset();}
});
}
});
});
})(jQuery);
Pergunta
PiXwell
Bom dia,
Tenho um site hospedado na Locaweb (Hospedagem Linux), e estou enviando um formulário de e-Mail via Ajax ... o envio está ocorrendo corretamente, o problema está na quantidade de mensagens. Ao invés de enviar apenas uma mensagem, está disparando 5 mensagens iguais, vejam a imagem "caixa de entrada" anexada à esse tópico.
Script PHP:
Script JQuery:
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.