Problemas email() no PHP

Olá, pessoal!

Tentei várias vezes e não consegui resolver a problemas

quando enviar o email e apareceu mensagem foram erro, e ai corrigir email está correto, não sei como aconteceu… Favor me ajude para resolver essa problemas.

<?php
//Para quem vai ser enviado o email
$to = "jsnpereira@gmail.com";
//resgata o nome digitado no formulário e grava na variavel $nome
$nome = $_POST['nome'];
//resgata o assunto digitado no formulário e grava na variavel $assunto
$subj = $_POST['assunto'];
$email = $_POST['email'];
$msg = $_POST['textoarea'];

// construção do cabecalho
$headers = "MIME-Version: 1.0\n";
$headers .= "Content-Type: text/plain; charset='ISO-8859-1'\n";
$headers .= "From: ".$nome." <".$email.">\n";
$headers .= "Return-Path: <$email>\n";
$headers .= "Reply-to: $nome <$email>\n";
$headers .= "X-Priority: 1\n"; 


// esta expressão regular é uma validação muito parcial
if(eregi("^/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/", $email)) {
	if(mail($to,$subj,$msg,$headers)){  // enviando o email
		echo "Email enviado com sucesso !";
	}else{
	echo "Ocorreu um erro ao tentar enviar o email";
	}
}else{
echo "Email inválido";
}
?>

Espero que vc me ajude

Bom dia!

Lhe aconselho a utilizar a classe PHPMailer. Ela é mais estável e completa.

Confira nesse link: http://blog.thiagobelem.net/php/enviar-e-mails-pelo-php-usando-o-phpmailer/

Até logo.

[quote=CJDJ]Bom dia!

Lhe aconselho a utilizar a classe PHPMailer. Ela é mais estável e completa.

Confira nesse link: http://blog.thiagobelem.net/php/enviar-e-mails-pelo-php-usando-o-phpmailer/

Até logo.[/quote]

Estou tentando a testar para funcionar que vc diz, e ai não funcionou a enviar… que diz erro em baixo…

Warning: fsockopen() has been disabled for security reasons in /home/webcindario/c/e/cejosrs/phpmailer/class.smtp.php on line 122 Não foi possível enviar o e-mail.

Informações do erro:
SMTP Error: Could not connect to SMTP host. 

Aguardo da sua responda

Uma pequena dica, que não tem muito haver seu erro no email.

Mas quando puder dá uma olhada na questão dos dados vindos do form, pelo que vimos os valores estão sendo atribuidos diretamente nas variáveis sem qualquer tratativa, parece besteira mas pode ser tornar um grave problema de segurança.

[quote=Jhonny Oliveira]Uma pequena dica, que não tem muito haver seu erro no email.

Mas quando puder dá uma olhada na questão dos dados vindos do form, pelo que vimos os valores estão sendo atribuidos diretamente nas variáveis sem qualquer tratativa, parece besteira mas pode ser tornar um grave problema de segurança.[/quote]

veja em baixo que eu fiz… ve alguns corrigir erros

&lt;?php
// Inclui o arquivo class.phpmailer.php localizado na pasta phpmailer
	require(&quot;phpmailer/class.phpmailer.php&quot;);

//resgata o nome digitado no formulário e grava na variavel $nome
$nome = $_POST['nome'];
//resgata o assunto digitado no formulário e grava na variavel $assunto
$subj = $_POST['assunto'];
$email = $_POST['email'];
$msg = $_POST['textoarea'];

//mensagem que vai ser enviado no e-mail
$mensagem = &quot;&lt;strong&gt;Nome: &lt;/strong&gt;".$nome;
$mensagem .= "<br> &lt;strong&gt;Email: &lt;/strong&gt;".$_POST['email'];
$mensagem .= "<br> &lt;strong&gt;Assunto: &lt;/strong&gt;".$_POST['assunto'];
$mensagem .= "<br> &lt;strong&gt;Texto:<br> &lt;/strong&gt;&quot;.$_POST['textoarea'];


	// Inicia a classe PHPMailer
	$mail = new PHPMailer();
	 
	// Define os dados do servidor e tipo de conexão
	// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
	$mail-&gt;IsSMTP(); // Define que a mensagem será SMTP
	$mail-&gt;Host = &quot;smtp.gmail.com&quot;; // Endereço do servidor SMTP
	$mail-&gt;SMTPAuth = true; // Usa autenticação SMTP? (opcional)
	$mail-&gt;Username = 'contato.cejosrs@gmail.com'; // Usuário do servidor SMTP
	$mail-&gt;Password = '*****************'; // Senha do servidor SMTP
	 
	// Define o remetente
	// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
	$mail-&gt;From = &quot;contato.cejosrs@gmail.com&quot;; // Seu e-mail
 	$mail-&gt;FromName = &quot;Contato - CEJOSRS&quot;; // Seu nome
	 
	// Define os destinatário(s)
	// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
	$mail-&gt;AddAddress('jsnpereira@gmail.com', 'Jeison da Silva Pereira');
	//$mail-&gt;AddAddress('ciclano@site.net');
	//$mail-&gt;AddCC('ciclano@site.net', 'Ciclano'); // Copia
	//$mail-&gt;AddBCC('fulano@dominio.com.br', 'Fulano da Silva'); // Cópia Oculta
	 
	// Define os dados técnicos da Mensagem
	// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
	$mail-&gt;IsHTML(true); // Define que o e-mail será enviado como HTML
	//$mail-&gt;CharSet = 'iso-8859-1'; // Charset da mensagem (opcional)
	 
	// Define a mensagem (Texto e Assunto)
	// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
	$mail-&gt;Subject  = &quot;Contato do CEJOSRS&quot;; // Assunto da mensagem
//	$mail-&gt;Body = &quot;Este é o corpo da mensagem de teste, em <b>HTML</b>! <br /> <img src="http://blog.thiagobelem.net/wp-includes/images/smilies/icon_smile.gif"  > &quot;;
//	$mail-&gt;AltBody = &quot;Este é o corpo da mensagem de teste, em Texto Plano! \r\n <img src="http://blog.thiagobelem.net/wp-includes/images/smilies/icon_smile.gif"  > &quot;;
	 
	// Define os anexos (opcional)
	// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
	//$mail-&gt;AddAttachment(&quot;c:/temp/documento.pdf&quot;, &quot;novo_nome.pdf&quot;);  // Insere um anexo
	 
	// Envia o e-mail
	$enviado = $mail-&gt;Send();
	 
	// Limpa os destinatários e os anexos
	$mail-&gt;ClearAllRecipients();
	$mail-&gt;ClearAttachments();
	 
	// Exibe uma mensagem de resultado
	if ($enviado) {
	echo &quot;E-mail enviado com sucesso!&quot;;
} else {
echo &quot;Não foi possível enviar o e-mail.<br /><br />";
echo "<b>Informações do erro:</b> <br />&quot; . $mail-&gt;ErrorInfo;
}

?&gt;

o formulário

 &lt;form name="form1" method="post" action="contato.php"&gt;
	&lt;center&gt;
   	&lt;table align="center"&gt;
    &lt;tr&gt;
    &lt;td&gt;Nome:&lt;/td&gt;&lt;td&gt;&lt;input name="nome" type="text" size="30" maxlength="45"&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
    &lt;td&gt;E-mail:&lt;/td&gt;&lt;td&gt;&lt;input name="email" type="text" size="30" maxlength="45" /&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
    &lt;td&gt;Assunto:&lt;/td&gt;
    &lt;td&gt;
    &lt;select name="assunto"&gt;
    	&lt;option&gt;--none--&lt;/option&gt;
    	&lt;option&gt;Melhorar o site&lt;/option&gt;
        &lt;option&gt;Sugestões&lt;/option&gt;
        &lt;option&gt;Reclamações&lt;/option&gt;
        &lt;option&gt;Dúvidas&lt;/option&gt;
        &lt;option&gt;Informações&lt;/option&gt;
    &lt;/select&gt;
    &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
    &lt;th colspan="2"&gt;Texto:&lt;/th&gt;
    &lt;/tr&gt;
	&lt;tr&gt;
    &lt;th colspan="2"&gt; &lt;textarea name="textoarea" cols="50" rows="10"&gt;&lt;/textarea&gt;
    &lt;/th&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
    &lt;th colspan="2"&gt;
    &lt;input type="submit" value="Enviar" onclick="return validar()" /&gt;
    &lt;/th&gt;
    &lt;/tr&gt;
    &lt;/table&gt;
    &lt;/center&gt;
    &lt;/form&gt;

espero que vcs me ajudem

A conexão não está sendo efetuada:

[quote]# Informações do erro:

SMTP Error: Could not connect to SMTP host. [/quote]

Você conferiu as orientações para configuração da porta SMTP do Gmail? A classe “class.smtp.php” contém a definição da mesma:

Esta é opção padrão. Talvez, o Gmail utilize outra.

Além disso, pode ser algo relacionado ao problema discutido nesse link:

http://forum.wmonline.com.br/topic/227361-problemas-com-fsockopen/

Até mais.

[quote=CJDJ]
A conexão não está sendo efetuada:

[quote]# Informações do erro:

SMTP Error: Could not connect to SMTP host. [/quote]

Você conferiu as orientações para configuração da porta SMTP do Gmail? A classe “class.smtp.php” contém a definição da mesma:

Esta é opção padrão. Talvez, o Gmail utilize outra.

Além disso, pode ser algo relacionado ao problema discutido nesse link:

http://forum.wmonline.com.br/topic/227361-problemas-com-fsockopen/

Até mais.[/quote]

já tentei várias vezes demais e nem funcionou mesmo… e não encontrei para resolver as problemas. mas já verifiquei o site e encontrei configuração do Gmail da php
Já configuramos SMTP na classe “class.smtp.php”. mesma coisa não funciona.

veja que eu fiz no enviar os dados para email php.

<?php

// Inclui o arquivo class.phpmailer.php localizado na pasta phpmailer
require_once("phpmailer/class.phpmailer.php");  

//resgata o nome digitado no formulário e grava na variavel $nome
$nome = $_POST['nome'];
//resgata o assunto digitado no formulário e grava na variavel $assunto
$subj = $_POST['assunto'];
$email = $_POST['email'];
$msg = $_POST['textoarea'];

//mensagem que vai ser enviado no e-mail
$mensagem = "<strong>Nome: </strong>".$nome;
$mensagem .= "<br> <strong>Email: </strong>".$_POST['email'];
$mensagem .= "<br> <strong>Assunto: </strong>".$_POST['assunto'];
$mensagem .= "<br> <strong>Texto:<br> </strong>".$_POST['textoarea'];

//Nova instância do PHPMailer  
$mail = new PHPMailer;  
//Informa que será utilizado o SMTP para envio do e-mail  
$mail->IsSMTP();  
//Informa que a conexão com o SMTP será autênticado  
$mail->SMTPAuth   = true;  
//Configura a segurança para SSL  
$mail->SMTPSecure = "ssl";  
//Informa a porta de conexão do GAMIL  
$mail->Port       = 465;  
//Informa o HOST do GMAIL  
$mail->Host       = "smtp.gmail.com";      // sets GMAIL as the SMTP server  
//Usuário para autênticação do SMTP  
$mail->Username =   "contato.cejosrs";  
//Senha para autênticação do SMTP  
$mail->Password =   "**********";  
//Titulo do e-mail que será enviado  
$mail->Subject  =   "Formulário de contato";  
  
//Preenchimento do campo FROM do e-mail  
$mail->From = $mail->Username;  
$mail->FromName = "Jeison Pereira";  
  
//E-mail para a qual o e-mail será enviado  
$mail->AddAddress("jsnpereira@gmail.com.br");  
  
//Conteúdo do e-mail  
$mail->Body = "
Registo do contato <br>
Nome : $nome<br>
E-mail: $email<br>
Assunto: $subj<br>
Texto: <br>
$msg <br>
<br>
<br>
Website - CEJOSRS";  
$mail->AltBody = $mail->Body;  
  
//Dispara o e-mail  
$enviado = $mail->Send();  
  
//Imprime sucesso.  
if($enviado) echo "E-mail enviado com sucesso";  
else echo "Enviado com sucesso";
?>

Jeison,

Estava procurando alguns arquivos para te ajudar e me lembrei que, há um tempo atrás, testei o envio de e-mails utilizando a classe PHPMailer e o Gmail e, também, não obtive sucesso. Lembro-me também que na época não tive tempo de procurar uma solução.

Não sei se vc possui e-mail no Bol, mas abaixo segue um script (funciona, eu testei) para envio de e-mails através do mesmo:

require("phpmailer/class.phpmailer.php");
	
	$mail = new PHPMailer();
	$mail->IsSMTP();
	$mail->Host = "smtps.bol.com.br";
	$mail->SMTPAuth = true;
	$mail->Username = 'seu_email@bol.com.br';
	$mail->Password = 'sua_senha';
	
	$mail->From = "mail_remetente@bol.com.br";
	$mail->FromName = "nome_remetente";
	
	$mail->AddAddress('mail_destinatario01@hotmail.com', 'nome_destinatario01');
	$mail->AddAddress('mail_destinatario02@hotmail.com', 'nome_destinatario02');
	
	$mail->IsHTML(true);
	
	$mail->Subject = "Mensagem Teste";
	$mail->Body = "Corpo da Mensagem em <b>HTML</b>!";
	$mail->AltBody = "Corpo da Mensagem em <b>Texto Plano</b> ";
	
	$enviado = $mail->Send();
	$mail->ClearAllRecipients();
	
	if($enviado) {
		echo 'Email enviado com sucesso!';
	} else {
		echo 'Nao foi possivel enviar o e-mail.<br />';
		echo 'Informacoes do erro: <br />'.$mail->ErrorInfo;
	}
	?>

A porta é a 587 ou 465.

Se possível, faça um teste com este script.

Até logo…

[quote=CJDJ]Jeison,

Estava procurando alguns arquivos para te ajudar e me lembrei que, há um tempo atrás, testei o envio de e-mails utilizando a classe PHPMailer e o Gmail e, também, não obtive sucesso. Lembro-me também que na época não tive tempo de procurar uma solução.

Não sei se vc possui e-mail no Bol, mas abaixo segue um script (funciona, eu testei) para envio de e-mails através do mesmo:

require("phpmailer/class.phpmailer.php");
	
	$mail = new PHPMailer();
	$mail->IsSMTP();
	$mail->Host = "smtps.bol.com.br";
	$mail->SMTPAuth = true;
	$mail->Username = 'seu_email@bol.com.br';
	$mail->Password = 'sua_senha';
	
	$mail->From = "mail_remetente@bol.com.br";
	$mail->FromName = "nome_remetente";
	
	$mail->AddAddress('mail_destinatario01@hotmail.com', 'nome_destinatario01');
	$mail->AddAddress('mail_destinatario02@hotmail.com', 'nome_destinatario02');
	
	$mail->IsHTML(true);
	
	$mail->Subject = "Mensagem Teste";
	$mail->Body = "Corpo da Mensagem em <b>HTML</b>!";
	$mail->AltBody = "Corpo da Mensagem em <b>Texto Plano</b> ";
	
	$enviado = $mail->Send();
	$mail->ClearAllRecipients();
	
	if($enviado) {
		echo 'Email enviado com sucesso!';
	} else {
		echo 'Nao foi possivel enviar o e-mail.<br />';
		echo 'Informacoes do erro: <br />'.$mail->ErrorInfo;
	}
	?>

A porta é a 587 ou 465.

Se possível, faça um teste com este script.

Até logo…[/quote]

Já testamos esse que você mostrou essa codigo e criei e-mail da Bol e mesmas coisa está no erro… To meio estranho, será hospedagem está problemas?
é um hospedagem gratuito com suporte PHP.

E testando localmente dá certo?

Pode ser algo relacionado a hospedagem sim…

Sim, testei tudo certinho! vou procurar outro hospedagem grátis para testar… qual melhor site hospedagem grátis com suporte PHP?

Agora acabei de testar no Xampp e funcionou corretamente… menos hospedagem não funcionou…
acho que tem solução problemas na hospedagem?

Cara, para ser sincero eu não conheço muito sobre hospedagens grátis.

Você vai precisar avaliar as configurações dela para tentar descobrir o que barra o envio do e-mail ou procurar outro host free mesmo…

Até mais.

[quote=CJDJ]
Cara, para ser sincero eu não conheço muito sobre hospedagens grátis.

Você vai precisar avaliar as configurações dela para tentar descobrir o que barra o envio do e-mail ou procurar outro host free mesmo…

Até mais.[/quote]

Agora consegui do meu amigo na hospedagem pago juntos. também coloquei site no ar… está tudo funcionando corretamente.

Muito obrigado por me ajudar… valeu!!