Ir para conteúdo

POWERED BY:

Arquivado

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

Giovana Garaguso

[Resolvido] Problemas com função mail()

Recommended Posts

Ola, sou iniciante em php e estou tentando desenvolver um formulário de envio por email. Para isso estou usando a função mail() que aparentemente está correta, já pesquisei bastante e nao encontrei nenhum erro no código. Gostaria de saber se existe algo além para se fazer nesse caso.

Obrigada pela atenção desde já.

 

Aqui é o código do formulário:

<form name="five" id="five" action="enviaform.php" method="post"> 	
<table border="1" bordercolor="silver" height="300" align="center">
	<tr>
	<td align="center" colspan="2">  <h1><font color=#A52A2A> Formul&aacuterio </h1></font></td>
	</tr>

	<tr>
	<td> Nome: </td>
	<td> <input type="text" name="nform"> </td>
	</tr>

	<tr>
	<td> Email: </td>
	<td> <input type="text" name="eform"> </td>
	</tr>

	<tr>
	<td> Assunto: </td>
	<td> <input type="text" name="aform"> </td>
	</tr>

	<tr>
	<td> Mensagem: </td>
	<td> <textarea name=”mform” cols=”30″ rows=”10″ id=”mform”></textarea> </td>
	</tr>

	<tr>
	<td  align="right" colspan="2"> <input type="reset" value="limpar">
					<input type="submit" value="enviar"> </td>
	</tr>

 </table>

</form>

 

E este é o arquivo com o código para enviar por email:

<?php

$emailsender = 'gigi.nanana@hotmail.com';

$nomeremetente = $_POST['nform'];
$emailremetente = $_POST['eform'];
$emaildestinatario = "giovana.garaguso@gmail.com";
$assunto = $_POST['aform'];
$mensagem = $_POST['mform'];

/*Cabeçalho do email */

$headers = "MiME-Verson: 1.1\n";
$headers .= "Content-type: text/plain; charset= iso-8859\n";
$headers .= "From: $emailsender\n";
$headers .= "Reply-To: $emailremetente\n";
$headers .= "Return-Path: $emailremetente\n";


/* Função Mail: */

$enviado= mail($emaildestinatario, $assunto, $mensagem, $headers);


?>
<table>
<tr><td> <? if($enviado == true) { echo "Enviado com Sucesso!"; } else { echo "Erro ao enviar a mensagem"; }?> 
</tr></td>
</table>

Compartilhar este post


Link para o post
Compartilhar em outros sites

a pagina imprime Enviado com Sucesso! ou Erro ao enviar a mensagem?

Compartilhar este post


Link para o post
Compartilhar em outros sites

dá um echo nas variáveis e veja se estão corretas.

 

Acho que seu header está fora do padrão. o From está divergente do reply-to.

tente:

$headers = "From: $emailremetente\r\n";
$headers .= "Reply-To: $emailremetente\r\n";
$headers .= "Return-Path: $emailremetente\r\n";
$headers .= "Envelope-from: $emailremetente\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/plain; charset=iso-8859-1\r\n";

Compartilhar este post


Link para o post
Compartilhar em outros sites

from diferente de reply-to não tem mto a haver.

 

quem é teu servidor smtp? ele está recebendo a requisição?

Compartilhar este post


Link para o post
Compartilhar em outros sites

e como ficaria esse arquivo php.ini?

porque até achei inumeros sites na net falando sobre, mas por incrivel q parece nenhuma configuração funcionou.

Tem alguma outra solução pra isso?

 

Como disse sou iniciante, mas agradeço mto pela a ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, tentei usar esse código com a função do php mailer e também modifiquei o arquivo php.ini

Agora não acusa nenhum erro, simplesmente não chega nos emails (e tbm ele nao exibe a mensagem de enviado com sucesso)

 

Código php

<?php



$nomeremetente = $_POST['nform'];

$emailremetente = $_POST['eform'];

$assunto = $_POST['aform'];

$mensagem = $_POST['mform'];

error_reporting(E_STRICT);

require_once("class.phpmailer.php");
require_once("class.smtp.php");

date_default_timezone_set('America/Sao_Paulo');


//Primeiro setamos o cabeçalho:
 $header .= " Content-type: text/html; charset=iso-8859-1\r\n";  
//instanciamos o objeto
$mail = new PHPMailer();
// Informamos que vamos enviar através de SMTP
$mail->IsSMTP();
// Colocamos o servidor smtp
$mail->Host = "smtp.gmail.com";
// Se seu servidor de smtp necessita de autenticação, devemos habilitar este item:
$mail->SMTPAuth = true;
// colocamos agora o usuário e senha do servidor smtp
$mail->Username = "giovana.garaguso@gmail.com";
$mail->Password = "*******";
// Agora vamos informar qual email vai aparecer como remetente
$mail->From = $emailremetente;
$mail->FromName = $nomeremetente;

//Agora vamos adicionar alguns destinatários
$mail->AddAddress("gigi.nanana@hotmail.com","Fulano");
$mail->AddAddress("gigi.nanana@gmail.com","Ciclano");
//Podemos setar qual é o tamanho do texto por linha pra quebrar a linha de forma automática
$mail->WordWrap = 50;
//Vamos colocar o assunto do email
$mail->Subject = $assunto;
//Colocamos o texto do email
$mail->Body = $mensagem;
//e mandamos enviar:
 if(!$mail->Send())
 { 
//Exibimos o erro ocorrido
    echo $mail->ErrorInfo;
 }
else { echo "Email enviado com sucesso";}

?>

 

arquivo php.ini

 

[mail function]

; For Win32 only.

;SMTP = localhost

SMTP = smtp.gmail.com

smtp_port = 25

 

; For Win32 only.

;sendmail_from = me@example.com

sendmail_from = giovana.garaguso@gmail.com

 

; For Unix only. You may supply arguments as well (default: "sendmail -t -i").

;sendmail_path =

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nao eh por nada, mas eu me invoquei com isso:

<td> <textarea name=”mform” cols=”30″ rows=”10″ id=”mform”></textarea> </td>

Essas aspas estão diferentes das outras :S

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nao eh por nada, mas eu me invoquei com isso:

<td> <textarea name=”mform” cols=”30″ rows=”10″ id=”mform”></textarea> </td>

Essas aspas estão diferentes das outras :S

 

está funcionando normal

antes fosse esse meu problema =/

 

<?php



$nomeremetente = $_POST['nform'];

$emailremetente = $_POST['eform'];

$emaildestinatario = "gigi.nanana@gmail.com";

$assunto = $_POST['aform'];

$mensagem = $_POST['mform'];



/*Cabeçalho do email */



$headers = "From: $emailremetente\n";

$headers .= "Reply-To: $emailremetente\n";

$headers .= "Return-Path: $emailremetente\n";

$headers .= "Envelope-from: $emailremetente\n";

$headers .= "MIME-Version: 1.0\n";

$headers .= "Content-type: text/plain; charset=iso-8859-1\n";





/* Função Mail: */



$enviado= mail($emaildestinatario, $assunto, $mensagem, $headers);





?>

esse codigo funcionou direitinho, só tive q testar em um servidor, no localhost nao foi.

 

Obg pela ajuda!

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.