Ir para conteúdo

POWERED BY:

Arquivado

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

Nuno Amaral

[RESOLVIDO] Formulário de email

Recommended Posts

Boas pessoal.

 

Tenho o seguinte problema.

Tenho um formulario em php para enviar emails.

Se meter o email destinatario que vem do servidor eu recebo bem os emails vindo do formulário, se meter um da msn, gmail ou outro eu não recebo emails.

 

Será problemas de autenticação?

 

O meu php é o seguinte:

<?php//exemplo de capturar dados dos formularios de acordo com as variáveis//aqui vai as variáveis$nome   = $_POST[nome];$morada   = $_POST[morada];$localidade   = $_POST[localidade];$telefone   = $_POST[telefone];$email   = $_POST[email];$assunto   = $_POST[assunto];$mensagem  = $_POST[mensagem];$msg =' <html><head><title>Formulário Web Site</title><link href="http://www.casadoterreiro.com/formulario/email.css" rel="stylesheet" type="text/css" /></head><body bgcolor="#ffffff"><img src="http://www.casadoterreiro.com/formulario/logo.jpg" /><br><br><div class="mailtitulo"><b>PEDIDO DE INFORMAÇÕES:</b></div><div class="mailtitulo"><b>Nome:</b></div><div class="mailsubtitulo"> '.$nome.'</div><div class="mailtitulo"><b>Morada:</b></div><div class="mailsubtitulo"> '.$morada.'</div><div class="mailtitulo"><b>Localidade:</b></div><div class="mailsubtitulo"> '.$localidade.'</div><div class="mailtitulo"><b>Telefone:</b></div><div class="mailsubtitulo"> '.$telefone.'</div><div class="mailtitulo"><b>Email:</b></div><div class="mailsubtitulo"> '.$email.'</div><br><div class="mailtitulo"><b>Assunto:</b></div><div class="mailsubtitulo"> '.$assunto.'</div><div class="mailtitulo"><b>Mensagem:</b></div><div class="mailsubtitulo"> '.$mensagem.'</div></body></html> ';$headers = "MIME-Version: 1.0\n";$headers .= "Content-type: text/html; charset=iso-8859-1\n";$headers .= "From: ".$email;mail("email@email.com", "Pedido de Informação", $msg, $headers);echo "<script>window.location.href='emailenviado.html'</script>";?>

Alguém tem uma solução para isto?

 

Cumprimentos

Nuno Amaral

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Nuno.

 

Olha não sei a resposta para o teu problema, mas sei que já o tive e encontrar uma solução que serve para todos os meus envio de mails:

 

http://phpmailer.sourceforge.net/

 

esta class permite enviares mails com ou sem smtp autenticado ou não, e não tens de te preocupar com os headers.

 

Uma class essencial.

 

Inté http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

bem ... se nao ta recebendo e pq os servidres estao reconhecendo os mails como span , verifique em sua pasta lixeira, as vezes estao la... pra mudar isso ai vai do header , tem q ta certim

Compartilhar este post


Link para o post
Compartilhar em outros sites

bem ... se nao ta recebendo e pq os servidres estao reconhecendo os mails como span , verifique em sua pasta lixeira, as vezes estao la... pra mudar isso ai vai do header , tem q ta certim

Obrigado.Mas o que tenho de fazer no header?CumprimentosNuno Amaral

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa

 

Estou a usar a class phpmailer para enviar emails via formulario

 

Tenho assim o código:

<?php// chamada da classe phpmailerrequire_once('class.phpmailer.php');require_once('class.smtp.php');//exemplo de capturar dados dos formularios de acordo com as variáveis//aqui vai as variáveis$nome   = $_POST[nome];$morada   = $_POST[morada];$localidade   = $_POST[localidade];$telefone   = $_POST[telefone];$email   = $_POST[email];$assunto   = $_POST[assunto];$mensagem  = $_POST[mensagem];// faço a chamada da classe$Email = new PHPMailer();// na classe, há a opção de idioma, setei como br$Email->SetLanguage("br");// esta chamada diz que o envio será feito através da função mail do php. Você mudar para sendmail, qmail, etc // se quiser utilizar o programa de email do seu unix/linux para enviar o email//$Email->IsMail(); $Email->SmtpSend();$mail->Host = "site.net"; //Seu servidor SMTP$mail->SMTPAuth = "true";$mail->Username = "email@email.net"; // Utilize uma conta valida para seu servidor$mail->Password = "senha"; // Sua Senha da conta acima// ativa o envio de e-mails em HTML, se false, desativa.$Email->IsHTML(true); // email do remetente da mensagem$Email->From = $email;// nome do remetente do email$Email->FromName = $nome;// Endereço de destino do emaail, ou seja, pra onde você quer que a mensagem do formulário vá?$Email->AddAddress("nunoms@msn.com");//Para enviar um e-mail com cópia oculta, adicione a linha$Email->AddBcc("naweb@nawebti.net");// informando no email, o assunto da mensagem$Email->Subject = $assunto;// Define o texto da mensagem (aceita HTML)$Email->Body .= "<B>E-mail enviado por usuário<BR></b>";$Email->Body .= "Mensagem do usuário: $mensagem<BR><BR>";// verifica se está tudo ok com oa parametros acima, se nao, avisa do erro. Se sim, envia.if(!$Email->Send())  {echo "A mensagem não foi enviada. <p>";echo "Erro: " . $mail->ErrorInfo;}?>

Não consigo enviar por SMTP, e dá o seguinte erro:

 

Warning: Missing argument 1 for smtpsend() in C:\Inetpub\vhosts\nawebti.net\httpdocs\formulario2\class.phpmailer.php on line 459

Warning: Missing argument 2 for smtpsend() in C:\Inetpub\vhosts\nawebti.net\httpdocs\formulario2\class.phpmailer.php on line 459

 

Será que me falta alguma coisa?

 

Alguém me pode ajudar!

 

Cumprimentos

Nuno Amaral

Compartilhar este post


Link para o post
Compartilhar em outros sites

O erro é por causa da falta dos argumentos do método SmtpSend().

Tenta fazer o seguinte, onde tem:

 

$Email->SmtpSend();

Troque por

 

$Email->IsSMTP();

Faz um teste e posta o resultado aí ;)

 

[]s

Anderson Mello

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.