Array
(
    [0] => stdClass Object
        (
            [Votos_Balanceados] => 1
            [id] => 550647
            [titulo] => Formulário PHP não envia e-mail.
            [dataCadastro] => DateTime Object
                (
                    [date] => 2016-04-06 18:02:55
                    [timezone_type] => 3
                    [timezone] => America/Sao_Paulo
                )

            [isFirstPost] => -1
            [idUsuario] => 256881
            [status] => A
            [isExample] => 
            [NomeUsuario] => LEONARDO XAVIER
            [Apelido] => 
            [Foto] => Ídelphi.jpg
            [Conteudo] => Sim funciona em qualquer servidor.

faça o download do pacote: https://github.com/PHPMailer/PHPMailer

descompacte na raiz de seu projeto. E utilize este modelo de código para enviar suas mensagens.

notificar.php
[code]
<?php

require 'mail_lib/PHPMailerAutoload.php';

$mail = new PHPMailer;

//$mail->SMTPDebug = 3; // Enable verbose debug output - somente se houver erros no envio tire o comentário esta linha para ver detalhes do erro

$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = 'smtp do seu servidor de email; // Specify main and backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = 'usuario de autenticação do email'; // SMTP username
$mail->Password = 'senha do email'; // SMTP password
$mail->SMTPSecure = 'tsl'; // Enable TLS encryption, `ssl` also accepted
$mail->Port = porta de comunicação do servidor ex. 25; // TCP port to connect to - valor sem aspas

$mail->From = 'email do sistema aqui';
$mail->FromName = 'Assunto do Email';
//$mail->addAddress('destinatario'); // Add a recipient
$mail->addAddress('destinatario1');
$mail->addAddress('destinatario2'); // Name is optional
$mail->addReplyTo('', 'Information');
$mail->addCC('');
$mail->addBCC('');

$mail->addAttachment(''); // Add attachments
$mail->addAttachment(''); // Optional name
$mail->isHTML(true); // Set email format to HTML

$mail->Subject = 'Assunto do e-mail';

$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

$message= 'Sua mensagem aqui';
//echo $message;

$mail->Body = $message;

if(!$mail->send()) {
// echo 'Mensagem nao enviada.';
// echo 'Erro : ' . $mail->ErrorInfo;
} else {
// print "<script type = 'text/javascript'> location.href = 'concluido.html'</script>";;
}



[/code] ) )

Formulário PHP não envia e-mail.

PHP
Bruno Danilo
   - 10 mar 2016

Olá Boa noite,
Estava vendo este tutorial:
http://www.devmedia.com.br/enviar-formulario-por-e-mail-php/21757
Fiz exatamente como no tutorial mas o e-mail não envia, o site está hospedado em servidor pago onde o smtp está ativo, quando clico em enviar ele não retorna nenhum erro, mas também não envia o e-mail, vocês podem verificar o código que estou utilizando abaixo por favor:
Quem puder me ajudar agradeço desde já !
***PHP
<script>window.alert("Mensagem enviada com sucesso!");</script><meta http-equiv='refresh' content='0;URL=index.php'>

<?php
//1 ? Definimos Para quem vai ser enviado o email
$para="contato@harvorar.com.br";
//2 - resgatar os dados digitado no formulário e grava na variavel
$nome = $_POST['nome'];
$mail= $_POST['mail'];
$ddd= $_POST['ddd'];
$telefone= $_POST['telefone'];
$assunto= $_POST['assunto'];
$mensagem= $_POST['msg'];
//4 ? Agora definimos a mensagem que vai ser enviado no e-mail
$mensagem = "<strong>Nome: </strong>".$nome;
$mensagem = "<strong>Email: </strong>".$mail;
$mensagem = "<strong>ddd: </strong>".$ddd;
$mensagem = "<strong>telefone: </strong>".$telefone;
$mensagem = "<strong>Assunto: </strong>".$assunto;
$mensagem = "<strong>Mensagem: </strong>".$mensagem;
//5 ? agora inserimos as codificações corretas e tudo mais.
$headers="Content-Type:text/html; charset=UTF-8\n";
$headers .="From: contato@harvorar.com.br<contato@harvorar.com.br>\n";
//Vai ser
//mostrado que o email partiu deste email e seguido do nome
$headers .="X-Sender: <contato@harvorar.com.br>\n";
//email do servidor
//que enviou
$headers .="X-Mailer: PHP v" .phpversion()."\n";
$headers .="X-IP: " .$_SERVER[ 'REMOTE_ADDR']. "\n";
$headers .="Return-Path: <contato@harvorar.com.br>\n";
//caso a msg //seja respondida vai para este email.
$headers .="MIME-Version: 1.0\n";
mail($nome, $ddd, $telefone, $assunto, $mensagem);
//função que faz o envio do email.
?>

***HTML
<td width="450" valign="top">
<!-- PHP FUNÇÃO -->
<form action="enviar_contato.php" method="post" name="contato" id="contato" onsubmit="return validaForm()">
<table width="400" border="0" align="right" cellpadding="2" cellspacing="2" class="texto">
<tr>
<td height="19" valign="top" class="textos">
<input name="nome" type="text" class="formularios" style="width:100%;" id="nome" onfocus="if(this.value == 'Nome') {this.value = ''};" onblur="if (this.value == '') {this.value = 'Nome'};" value="Nome"/></td>
</tr>
<tr>
<td height="19" valign="top" class="textos">
<input name="mail" type="text" class="formularios" style="width:100%;" id="mail" onfocus="if(this.value == 'Email') {this.value = ''};" onblur="if (this.value == '') {this.value = 'Email'};" value="Email"/></td>
</tr>
<tr>
<td height="19" valign="top" class="textos">
<input name="ddd" type="text" class="formularios" id="ddd" style="width:10%;" onfocus="if(this.value == 'DDD') {this.value = ''};" onblur="if (this.value == '') {this.value = 'DDD'};" value="DDD" maxlength="2"/>
<input name="telefone" type="text" class="formularios" id="telefone" style="width:30%;" onfocus="if(this.value == 'Telefone') {this.value = ''};" onblur="if (this.value == '') {this.value = 'Telefone'};" value="Telefone" maxlength="20"/>
</td>
</tr>
<tr>
<td height="19" valign="top" class="textos">
<input name="assunto" type="text" class="formularios" style="width:100%;" id="assunto" onfocus="if(this.value == 'Assunto') {this.value = ''};" onblur="if (this.value == '') {this.value = 'Assunto'};" value="Assunto"/>
</td>
</tr>
<tr>
<td valign="top" class="textos">
<textarea name="mensagem" rows="5" cols="41" class="formularios" value="" style="WIDTH: 100%; height:120px;" id="msg" onfocus="if(this.value == 'Mensagem') {this.value = ''};" onblur="if (this.value == '') {this.value = 'Mensagem'};" >Mensagem</textarea>
</td>
</tr>
<tr>
<td><input name="Submit" type="image" value="Enviar!" src="images/bot_enviar.jpg" /></td>
</tr>
</table>
</form>
</td>

Post mais votado

Leonardo Xavier
   - 06 abr 2016

Sim funciona em qualquer servidor.

faça o download do pacote: https://github.com/PHPMailer/PHPMailer

descompacte na raiz de seu projeto. E utilize este modelo de código para enviar suas mensagens.

notificar.php
#Código

<?php

require 'mail_lib/PHPMailerAutoload.php';

$mail = new PHPMailer;

//$mail->SMTPDebug = 3;                               // Enable verbose debug output - somente se houver erros no envio tire o comentário esta linha para ver detalhes do erro

$mail->isSMTP();                                      // Set mailer to use SMTP
$mail->Host = 'smtp do seu servidor de email;             // Specify main and backup SMTP servers
$mail->SMTPAuth = true;                               // Enable SMTP authentication
$mail->Username = 'usuario de autenticação do email'; // SMTP username
$mail->Password = 'senha do email';                           // SMTP password
$mail->SMTPSecure = 'tsl';                            // Enable TLS encryption, `ssl` also accepted
$mail->Port = porta de comunicação do servidor ex. 25;                                    // TCP port to connect to - valor sem aspas

$mail->From = 'email do sistema aqui';
$mail->FromName = 'Assunto do Email';
//$mail->addAddress('destinatario');     // Add a recipient
$mail->addAddress('destinatario1');   
$mail->addAddress('destinatario2');         // Name is optional
$mail->addReplyTo('', 'Information');
$mail->addCC('');
$mail->addBCC('');

$mail->addAttachment('');         // Add attachments
$mail->addAttachment('');    // Optional name
$mail->isHTML(true);                                  // Set email format to HTML

$mail->Subject = 'Assunto do e-mail';
  
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

$message= 'Sua mensagem aqui'; 
//echo $message;

$mail->Body  = $message;

if(!$mail->send()) {
 //   echo 'Mensagem nao enviada.';
 //   echo 'Erro : ' . $mail->ErrorInfo;
} else {
  //  print "<script type = 'text/javascript'> location.href = 'concluido.html'</script>";;
}



1
|
0

William (devwilliam)
   - 10 mar 2016

Por gentileza, utilize a tag code quando for postar trechos de código:
Clique na imagem para abrir em uma nova janela

Utilizo esse script em meus sites:
#Código

<?php
header('Content-type: text/html; charset=utf-8');
define('SERVIDOR', 'sua_conta_email@servicor.com.br');
define('DESTINO', 'email_destino@email.com.br');
define('EMPRESA', Nome_Empresa');

if (isset($_POST['nome'])){

    $nome    = (isset($_POST['nome']))? $_POST['nome']: '';
    $email   = (isset($_POST['email']))? $_POST['email']: '';
    $assunto = (isset($_POST['assunto']))? $_POST['assunto']: '';
    $msg     = (isset($_POST['mensagem']))? $_POST['mensagem']: '';
    
    if (empty($nome) || empty($email) || empty($msg)){
         $array  = array('erro' => 2, 'mensagem' => 'Preencher os campos obrigatórios(*)!');
         echo json_encode($array);
    }else{

        if (empty($assunto)):
           $assunto = "Contato enviado pelo site " . EMPRESA;
        endif;

        $mensagem = "Contato enviado pelo site ".EMPRESA."\n";
        $mensagem .= "**********************************************************\n";
        $mensagem .= "Nome do Contato: ".$nome."\n";
        $mensagem .= "E-mail do Contato: ".$email."\n";
        $mensagem .= "**********************************************************\n";
        $mensagem .= "Mensagem: \n".$msg."\n";

       $retorno = EnviaEmail(DESTINO, $email, $assunto, $mensagem);
       if ($retorno){
           $array  = array('erro' => 0, 'mensagem' => 'Mensagem enviada com sucesso!');
           echo json_encode($array);
        }else{
           $array  = array('erro' => 1, 'mensagem' => 'Infelizmente houve um erro ao enviar sua mensagem!');
           echo json_encode($array);
        }
    }
}

function EnviaEmail($para, $from, $assunto, $mensagem){

    $headers = "From: ".SERVIDOR."\n";
    $headers .= "Reply-To: $para\n";
    $headers .= "Subject: $assunto\n";
    $headers .= "Return-Path: ".SERVIDOR."\n";
    $headers .= "MIME-Version: 1.0\n";
    $headers .= "X-Priority: 3\n";
    $headers .= "Content-Type: text/html; charset=UTF-8\n";

    $retorno = mail($para, $assunto, nl2br($mensagem), $headers);
    return $retorno;  
}

0
|
0

Renan Pontes
   - 11 mar 2016

Nenhuma mensagem de erro?

0
|
0

Bruno Danilo
   - 18 mar 2016

Amigos obrigado pela ajuda, esse fim de semana vou testar a soluções postadas aqui e retorno com o feedback,
..
Renan pontes, não retorna nenhuma mensagem de erro.

0
|
0

Bruno Danilo
   - 04 abr 2016

William,
Fiz o teste utilizando seu script e esta me retornando um erro, o que pode ser?

ERRO -> Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /var/www/html/qsaldo.com/web/enviar.php on line 7

#Código

<?php
header('Content-type: text/html; charset=utf-8');
define('SERVIDOR', 'contato@qsaldo.com');
define('DESTINO', 'contato@qsaldo.com');
define('EMPRESA', Qsaldo');
 
if (isset($_POST['nome'])){
 
    $nome    = (isset($_POST['nome']))? $_POST['nome']: '';
    $email   = (isset($_POST['email']))? $_POST['email']: '';
    $assunto = (isset($_POST['assunto']))? $_POST['assunto']: '';
    $msg     = (isset($_POST['message']))? $_POST['message']: '';
     
    if (empty($nome) || empty($email) || empty($msg)){
         $array  = array('erro' => 2, 'mensagem' => 'Preencher os campos obrigatórios(*)!');
         echo json_encode($array);
    }else{
 
        if (empty($assunto)):
           $assunto = "Contato enviado pelo site " . EMPRESA;
        endif;
 
        $mensagem = "Contato enviado pelo site ".EMPRESA."\n";
        $mensagem .= "**********************************************************\n";
        $mensagem .= "Nome do Contato: ".$nome."\n";
        $mensagem .= "E-mail do Contato: ".$email."\n";
        $mensagem .= "**********************************************************\n";
        $mensagem .= "Mensagem: \n".$msg."\n";
 
       $retorno = EnviaEmail(DESTINO, $email, $assunto, $mensagem);
       if ($retorno){
           $array  = array('erro' => 0, 'mensagem' => 'Mensagem enviada com sucesso!');
           echo json_encode($array);
        }else{
           $array  = array('erro' => 1, 'mensagem' => 'Infelizmente houve um erro ao enviar sua mensagem!');
           echo json_encode($array);
        }
    }
}
 
function EnviaEmail($para, $from, $assunto, $mensagem){
 
    $headers = "From: ".SERVIDOR."\n";
    $headers .= "Reply-To: $para\n";
    $headers .= "Subject: $assunto\n";
    $headers .= "Return-Path: ".SERVIDOR."\n";
    $headers .= "MIME-Version: 1.0\n";
    $headers .= "X-Priority: 3\n";
    $headers .= "Content-Type: text/html; charset=UTF-8\n";
 
    $retorno = mail($para, $assunto, nl2br($mensagem), $headers);
    return $retorno;  
}

0
|
0

William (devwilliam)
   - 04 abr 2016

Linha 5 faltando fechar o apóstrofo:

#Código

define('EMPRESA', Qsaldo');

0
|
0

Bruno Danilo
   - 04 abr 2016

Obrigado William,
O erro realmente não apareceu mais, realmente faltava uma (´) porém o formulário não está chegando no E-mail, porque será?

0
|
0

William (devwilliam)
   - 04 abr 2016

A constante:
#Código

define('SERVIDOR', 'contato@qsaldo.com');


Deve estar com valor errado!

0
|
0

Bruno Danilo
   - 04 abr 2016

Alterei para:

#Código

define('SERVIDOR', 'smtp.qsaldo.com');


Continua sem nenhuma ação..

0
|
0

William (devwilliam)
   - 04 abr 2016

No meu caso, no servidor de hospedagem tenho uma conta de email que criei somente para newsletter, "newsletter@devwilliam.com.br".

Então uso esse conta na constante SERVIDOR.

0
|
0

Bruno Danilo
   - 04 abr 2016

Bom, pelo jeito só pode ser o servidor mesmo, o site está hospedado na UOL Host, vi que algumas pessoas estão reclamando também e utilizando o PHPMailer.

0
|
0

Leonardo Xavier
   - 06 abr 2016

Este tópico teve solução? tenho um script de php que funciona muito bem para envio de e-mail

0
|
0

Bruno Danilo
   - 06 abr 2016

Não amigo, sem solução por enquanto, seu script funciona em qualquer servidor? pode enviar por favor!?

0
|
0

Bruno Danilo
   - 07 abr 2016

Com a sua ajuda e mais uma serie de outras pesquisas consegui uma solução, fiz com que o formulário funciona-se de forma 100% eficaz as minhas necessidades, segue o código utilizado, em conjunto com a class phpmailer, fiz o up dos arquivos utilizados já também com o script abaixo, abraços amigos e obrigado pelo auxilio!

Download: https://github.com/Guga-Design/envia-e-mail-smtp-gmail-phpmailer

#Código

<?php

// Variáveis do Formulário Form 
$nome     = $_POST["nome"];  
$email    = $_POST["email"]; 
$assunto = $_POST["assunto"];  
$telefone = $_POST["telefone"]; 
$mensagem = $_POST["mensagem"]; 

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

// Inicia a classe PHPMailer
$mail = new PHPMailer();

// Define os dados do servidor e tipo de conexão - NESTE CASO USAREMOS O GMAIL
$mail->IsSMTP();
$mail->Host     = "smtp.gmail.com";     // Endereço do servidor SMTP
$mail->SMTPAuth = true;                   // Usa autenticação SMTP? (opcional)
$mail->Username = 'seu-email@gmail.com';  // Usuário do servidor SMTP - IMPORTANTE - ATIVAR o acesso a aplicativos menos seguros da sua conta GMAIL	      
$mail->Password = 'suasenha';               // Senha do servidor SMTP
$mail->port = 587;                           // Autenticação 587 para conexões TLS 587 se for SSL é 465
$mail->SMTPSecure = 'tls';                  // Autenticação 587 TLS

// Define o remetente.
$mail->From     = "seu-email@gmail.com"; // Seu e-mail
$mail->FromName = "DISPARO DE EMAIL"; // Nome do disparo 

// Variáveis dos destinatário(s)
$destinatario1 = "destinatario1@gmail.com";
$destinatario2 = "destinatario2@hotmail.com"; 
$destinatario3 = "destinatario3@gmail.com"; 
$destinatario4 = "destinatario4@hotmail.com"; 
$destinatario5 = "destinatario5@gmail.com"; 

// Define os destinatário(s)
$mail->AddAddress($destinatario1);
$mail->AddAddress($destinatario2);
$mail->AddAddress($destinatario3);
$mail->AddAddress($destinatario4);
$mail->AddAddress($destinatario5);

// DEFININDO OS DADOS DO E-MAIL, ASSUNTO E MENSAGEM

// Corpo da Mensagem 
$mail->IsHTML(true); // Define que o e-mail será enviado em código HTML
$mail->Subject = "CLIENTE DO SITE PERGUNTA, $assunto";  // Assunto predefininido e Cliente preenchido.
// HTML do corpo do e-mail definindo que Nome, e-mail, telefone e mensagem apareceram no corpo.
$mail->Body    = "<h2>Nome do Cliente: $nome</h2><h3>Email do cliente: $email<h3/> <h3>TELEFONE/CELULAR: $telefone </h3> <br/> <h2> Mensagem: $mensagem </h2>"; 

// Envia o e-mail
$enviado = $mail->Send();

// Exibe uma mensagem de resultado
if ($enviado) {
   echo "E-mail enviado com sucesso!";   
} else {
   echo "Não foi possível enviar o e-mail !";
}

?>

0
|
0