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 a todos
Tenho um form de contato no site com os seguinte campos:
Nome
Fone
Assunto
Mensagem
Sempre funcionou.. mas a Locaweb fez algumas modificações em relação a filtros e tive que modificar o arquivo envio.php usando as configuração de return path. Não conheço muito bem de PHP mas fiz algumas modificações no código seu segue... mas não esta dando certo. Ao preencher o formulário e clicar em enviar, os dados devem ir para contato@emello.net.br e não acontece.
Segue o código.
<?php
if (eregi('tempsite.ws$|locaweb.com.br$|hospedagemdesites.ws$|websiteseguro.com$', $_SERVER[HTTP_HOST])) {
$emailsender= 'contato@emello.net.br';
} else {
$emailsender = "contato@emello.net.br" . $_SERVER[HTTP_HOST];
}
if(PATH_SEPARATOR == ";") $quebra_linha = "\r\n";
else $quebra_linha = "\n";
$nomeemetente = $_POST['nome'];
$emailremetente = $_POST['email'];
$foneremetente = $_POST['fone'];
$emaildestinatario = $_POST['emaildestinatario'];
$comcopia = $_POST['comcopia'];
$comcopiaoculta = $_POST['comcopiaoculta'];
$assunto = $_POST['assunto'];
$mensagem = $_POST['mensagem'];
$mensagemHTML = '<P>Esse email é um teste enviado no formato HTML via PHP mail();!</P>
<P>Aqui est� a mensagem postada por voc�; formatada em HTML:</P>
<p><b><i>'.$mensagem.'</i></b></p>
<hr>';
$headers = "MIME-Version: 1.1" .$quebra_linha;
$headers .= "Content-type: text/html; charset=iso-8859-1" .$quebra_linha;
$headers .= "From: " . $emailsender.$quebra_linha;
$headers .= "Cc: " . $comcopia . $quebra_linha;
$headers .= "Bcc: " . $comcopiaoculta . $quebra_linha;
$headers .= "Reply-To: " . $emailremetente . $quebra_linha;
if(!mail($emaildestinatario, $assunto, $mensagemHTML, $headers ,"-r".$emailsender)){
$headers .= "Return-Path: " . $emailsender . $quebra_linha;
mail($emaildestinatario, $assunto, $mensagemHTML, $headers );
}
print "Mensagem <b>$assunto</b> enviada com sucesso!<br><br>
De: $emailsender<br>
Para: $emaildestinatario<br>
Com c�pia: $comcopia<br><p><a href='".$_SERVER["HTTP_REFERER"]."'>Voltar</a></p>"
?>Olá Carlos Coelho, coloquei o código como você comentou para identificar o erro e tentei enviar novamente o formulário e apresentou os seguintes erros.
Notice: Use of undefined constant HTTP_HOST - assumed 'HTTP_HOST' in /var/www/vhosts/emello.net.br/httpdocs/contato/envio.php on line 6 Deprecated: Function eregi() is deprecated in /var/www/vhosts/emello.net.br/httpdocs/contato/envio.php on line 6 Notice: Use of undefined constant HTTP_HOST - assumed 'HTTP_HOST' in /var/www/vhosts/emello.net.br/httpdocs/contato/envio.php on line 9 Notice: Undefined variable: emailremetente in /var/www/vhosts/emello.net.br/httpdocs/contato/envio.php on line 39 Notice: Undefined variable: emaildestinatario in /var/www/vhosts/emello.net.br/httpdocs/contato/envio.php on line 44 Notice: Undefined variable: emaildestinatario in /var/www/vhosts/emello.net.br/httpdocs/contato/envio.php on line 46 Notice: Undefined variable: emaildestinatario in /var/www/vhosts/emello.net.br/httpdocs/contato/envio.php on line 53 Notice: Undefined variable: comcopia in /var/www/vhosts/emello.net.br/httpdocs/contato/envio.php on line 54 Notice: Undefined variable: comcopiaoculta in /var/www/vhosts/emello.net.br/httpdocs/contato/envio.php on line 55 Mensagem Teste enviada com sucesso!
De: contato@emello.net.brwww.emello.net.br
Para:
Com cópia:
Com cópia Oculta:
Sobre o código que você passou eu devo substituir pelo o que tenho ou só acrescentar...?
Obrigado.
Olá pessoal.
Estive em contato com o pessoal da LocaWeb e pediram para fazer dessa forma. O Email esta chegando agora... mas como não conheço bem ainda de códigos... Preciso nesse código os campos do form que é: NOME | EMAIL | FONE | ASSUNTO E CONTATO e fazer o POST. Não estou sabendo direito como fazer. Alguém pode dar uma ajuda? Fico no aguardo. Obrigado.
<?php
require_once('class.phpmailer.php');
$mailer = new PHPMailer();
$mailer->IsSMTP();
$mailer->SMTPDebug = 1;
$mailer->Port = 587; //Indica a porta de conex�o para a sa�da de e-mails
$mailer->Host = 'smtp.emello.net.br'; //smtp.dominio.com.br
$mailer->SMTPAuth = true; //define se haver� ou n�o autentica��o no SMTP
$mailer->Username = 'contato@emello.net.br'; //Informe o e-mai o completo
$mailer->Password = '239557dede'; //Senha da caixa postal
$mailer->FromName = 'Teste de Envio Locaweb'; //Nome que ser� exibido para o destinat�rio
$mailer->From = 'contato@emello.net.br'; //Obrigat�rio ser a mesma caixa postal indicada em "username"
$mailer->AddAddress('contato@emello.net.br'); //Destinat�rios
$mailer->Subject = 'Teste enviado atrav�s do PHP Mailer';
$mailer->Body = 'Este � um teste realizado com a funcao SMTP - 587. Origem do teste -> www.emello.net.br';
if(!$mailer->Send())
{
echo "Message was not sent";
echo "Mailer Error: " . $mailer->ErrorInfo; exit; }1. sabe como resgatar dados de um formulário?
2. sabe concatenar variáveis ?
sabendo esses dois passos, basta passar para os parâmetros do PHPMailer..
exemplo,
$mailer->Body = 'Este é um teste realizado com a funcao SMTP - 587. Origem do teste -> www.emello.net.br';
:seta:
$teste = 'foo bar';
$mailer->Body = 'Este é um teste realizado com a funcao SMTP - 587. Origem do teste -> ' . $teste;
off
obs: procure corrigir esse problema com o encode/charset dos seus codigos...
Olá pessoal !
Resolvi... Coloco o código aqui para ajudar quem tiver a mesma duvida que tive !
<?php
if($_POST)
{
require_once('class.phpmailer.php');
$mailer = new PHPMailer();
$erros = "";
if(empty($_POST['nome'])){
$erros .= "O nome deve ser preenchido.";
}
if(empty($_POST['email']) ){
$erros .= "O E-mail deve ser preenchido.";
}else{
$email = $_POST['email'];
eregi("([\._0-9A-Za-z-]+)@([0-9A-Za-z-]+)(\.[0-9A-Za-z\.]+)",$email,$match);
if(!isset($match)){
$erros .= "O e-mail informado é inválido.";
}
if(empty($_POST['fone'])){
$erros .= "A Fone deve ser preenchido.";
}
}
if(empty($_POST['assunto'])){
$erros .= "A assunto deve ser preenchido.";
}
if(empty($_POST['mensagem'])){
$erros .= "A mensagem deve ser preenchida.";
}
if( empty($erros) ){
$mailer ->IsSMTP();
$mailer->Host = 'smtp.emello.net.br';
$mailer ->SMTPAuth = true;
$mailer ->Username = 'contato@emello.net.br';
$mailer ->Password = '239557dede';
$mailer ->Port = 587;
$mailer ->From = "contato@emello.net.br";
$mailer ->FromName = "Nome do Remetente";
$mailer ->AddAddress('contato@emello.net.br', 'Emello Treinamentos');
$mailer ->AddCC('analista.mello@gmail.com', 'Copia');
$mailer ->AddBCC('fernando@emello.net.br', 'Copia Oculta');
$mailer ->IsHTML(true);
$mailer ->CharSet = 'iso-8859-1';
$mailer ->Subject = "Contato do Site";
$mailer ->Body .= "\r\n <br> Nome: ".$_POST['nome']."";
$mailer ->Body .= "\r\n <br> E-mail: ".$_POST['email']."";
$mailer ->Body .= "\r\n <br> Fone: ".$_POST['fone']."";
$mailer ->Body .= "\r\n <br> Assunto: ".$_POST['assunto']."";
$mailer ->Body .= "\r\n <br> Mensagem: ".nl2br($_POST['mensagem'])."";
$enviado = $mailer ->Send();
$mailer ->ClearAllRecipients();
$mailer ->ClearAttachments();
if ($enviado) {
echo "E-mail enviado com sucesso! Logo entraremos em contato. Obrigado";
echo "<meta http-equiv=\"refresh\" content=\"3;url=http://www.emello.net.br/contato/contato.html\" />";
} else {
echo "Não foi possível enviar o e-mail." . $mail->ErrorInfo;
}
} else {
echo $erros;
}
}
?>
Obrigado a todos !
Coloque esse código na primeira linha do script para habilitar todas as mensagens de erro
No Linux, você pode definir o From das seguintes formas:
No Windows:
$headers .= "From: eu@seudominio.com\r\n";
Tente desta forma:
$bcc = null; // Esconder endereços de e-mails. $cc = null; // Qualquer destinatário pode ver os endereços de e-mail especificados nos campos To e Cc.Verifique se todas as variáveis que você utilizar estão com os valores corretos.