Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Um Problema no Envio de Email. Abaixo você vai ver dois arquivos: email.php e enviar.php Dentro do arquivo email.php está o formulário com os campos de entrada de dados, este arquivo está OK. O arquivo enviar.php também está OK, No arquivo email.php contêm um campo para digitar o endereço de email e o arquivo enviar.php se encarrega de mandar para este email digitado no campo. O problema é que, quando recebemos o ...
AM
Um Problema no Envio de Email.  
Abaixo você vai ver dois arquivos: email.php e enviar.php
Dentro do arquivo email.php está o formulário com os campos de entrada de dados, este arquivo está OK.
O arquivo enviar.php também está OK, No arquivo email.php contêm um campo para digitar o endereço de email e o arquivo enviar.php se encarrega de mandar para este email digitado no campo.

O problema é que, quando recebemos o email, no nome do remetente não aparece o nome da pessoa digitado no campo: nome, em vez de aparecer o nome da pessoa, aparece a variável: $nome
Veja a foto em anexo.

O problema está nesta linha de código abaixo, mas não sei como resolver. Alguém pode ajudar?
$headers .= 'From: $nome <$email>';

=============================
Nome do Arquivo: enviar.php

  1. <?php
  2. //Variaveis
  3. $nome $_POST['nome'];
  4. $email $_POST['email'];
  5. $telefone $_POST['telefone'];
  6. $opcoes $_POST['opcoes'];
  7. $mensagem $_POST['mensagem'];
  8. $data_envio date('d/m/Y');
  9. $hora_envio date('H:i:s');
  10. // Compo E-mail
  11.     $arquivo "
  12.     <style type='text/css'>
  13.     body {
  14.     margin:0px;
  15.     font-family:Verdane;
  16.     font-size:12px;
  17.     color: #666666;
  18.     }
  19.     a{
  20.     color: #666666;
  21.     text-decoration: none;
  22.     }
  23.     a:hover {
  24.     color: #FF0000;
  25.     text-decoration: none;
  26.     }
  27.     </style>
  28.     <html>
  29.         <table width='510' border='1' cellpadding='1' cellspacing='1' bgcolor='#CCCCCC'>
  30.             <tr>
  31.                     <tr>
  32.                  <td width='500'>Nome:&nbsp;<b>$nome</b></td>
  33.               </tr>
  34.               
  35.               <tr>
  36.                   <td width='320'>E-mail:&nbsp;<b>$email</b></td>
  37.                 </tr>                
  38.                 
  39.                       <tr>
  40.                   <td width='320'>Telefone:&nbsp;<b>$telefone</b></td>
  41.               </tr>
  42.               
  43.                    <tr>
  44.                   <td width='320'>Cliente:&nbsp;$opcoes</td>
  45.               </tr>
  46.               
  47.                       <tr>
  48.                   <td width='320'>Mensagem:&nbsp;$mensagem</td>
  49.               </tr>
  50.               
  51.             </td>
  52.           </tr>  
  53.           <tr>
  54.             <td>Este e-mail foi enviado em <b>$data_envio</b> &agrave;s <b>$hora_envio</b></td>
  55.           </tr>
  56.         </table>
  57.     </html>
  58.     ";
  59. // -------------------------
  60. //enviar
  61.     
  62.     // emails para quem será enviado os dados no formulário.
  63.     $destino $email;
  64.     $assunto "Sistema Personalizado.com";
  65.     // É necessário indicar que o formato do e-mail é html.
  66.     $headers  'MIME-Version: 1.0' "\\r\\n";
  67. //        $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\\r\\n";
  68.         $headers .= 'Content-type: text/html; charset=UTF-8' "\\r\\n";
  69. // Baixo tem algo errado, está exibindo no email (No Assunto) apenas isto: $nome
  70.        $headers .= 'From: $nome <$email>';
  71.           
  72. // endereço de resposta, se queremos que seja diferente a do remetente.
  73. // $headers .= "Reply-To: mariano@desarrolloweb.com";          
  74.              
  75. // $headers .= "Bcc: $EmailPadrao\\r\\n";
  76. // endereços que receberão uma copia oculta
  77. // $headers .= "Bcc: vinnie@criarweb.com,joao@criarweb.com";
  78.     
  79.     $enviaremail mail($destino$assunto$arquivo$headers);
  80.     if($enviaremail){
  81.     $mgm "<center><h1><br><br><br>E-MAIL ENVIADO COM SUCESSO! <br><br> O link será enviado para o e-mail fornecido no formulário.</center></h1>";
  82.     echo " <meta http-equiv='refresh' content='3;URL=email.php'>";
  83.     } else {
  84.     $mgm "ERRO AO ENVIAR E-MAIL!";
  85.     echo "";
  86.     }
  87.         echo "$mgm";
  88.     sleep(1);        
  89. ?>


=================================
Nome do arquivo: email.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="www.w3.org/1999/xhtml">
<head>
<title>E-mail - Correio Eletrônico</title>
</head>

<style type="text/css">
body{
font-size:16px;
font-family:Verdana, Geneva, sans-serif;
}
#email_form{
width:900px;
min-height:75px;
color:#330099;
margin:auto;
}

</style>

<body bgcolor="#FFFFCC">


<div id="email_form">
<form action="enviar.php" name="form_email" method="post" >
<p class="titulo"><center>Email - Correio Eletrônico</center></p>

<table align="center">
<tr>
<td>Nome:</td>
<td>
<input type="text" name="nome" size="100" maxlength="100" />
</td>
</tr>
<tr>
<td>Nosso E-mail:</td>
<td>
<input type="email" name="email" value="microsystem.infor@bol.com.br" size="100" maxlength="100" />
</td>
</tr>
<tr>
<td>Telefone:</td>
<td>
<input type="text" name="telefone" maxlength="14" size="24" />
</td>
</tr>
<tr>
<td>Cliente:</td>
<td>
<select name="opcoes" class="campo_input">
<option value="N&atilde;o Cliente">N&atilde;o Cliente</option>
<option value="Cliente Nosso">Cliente Nosso</option>
</select>
</td>
</tr>
<tr>
<td>Mensagem:</td>
<td>
<textarea name="mensagem" cols="75" rows="25"></textarea>
</td>
</tr>
<tr align="center";>
<td colspan="2">
<input type="reset" class="campo_submit" value="Limpar" />
<input type="submit" class="campo_submit" value="Enviar" />
</td>
</tr>
<tr>
<td colspan="2" align="right"></td>
</tr>
</table>
</form>
</div>
</body>
</html>


Pacotão Dominando o Adianti Framework 7
O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado! Versão 7.4


Dominando o Adianti 7 Quero me inscrever agora!

Comentários (7)


FC

$headers .= 'From: $nome <$email>';

aspas duplas para reconhecer a variável.

$headers .= "From: $nome <$email>";
AM

Deu certo amigo! Eu também já tinha testado com aspas duplas, o problema é que eu não recebi o email na caixa de entrada. Mas testando agora como você me pediu, o email novamente não foi para a caixa de entrada, mas foi para a pasta Quarentena na minha conta de email do BOL. Porque será? Afinal, este email não tem nenhum anexo e nem links.
Se você quiser testar, acesse meu site: www.sistemapersonalizado.com e no meio da página, um pouco abaixo, clique no meu email: microsystem.infor@bol.com.br
AM

Felipe, qual é o seu email?
AS

Alex Sandro, deixa eu ver se consigo lhe ajudar (e vice-versa, quando necessário).

Minha experiência com o BOL não é das melhores: sempre que um cliente me informa este e-mail já o oriento a nunca esquecer de verificar se minha resposta foi parar na pasta Spam do webmail dele.
Não sei se agora melhorou consideravelmente, mas há alguns anos isto era frequente (hoje poucos deles usam o BOL, a maioria - que utiliza e-mail gratuito - está com o Gmail mesmo).

Esta pasta "Quarentena" é semelhante à "Spam" do Gmail ou "Lixo Eletrônico" do Hotmail ou ela tem mais relação com algum tipo de antivírus (é feita uma verificação na mensagem e se apresentar algum risco é colocada na "Quarentena")?

Se for tipo Spam/Lixo Eletrônico pode ser que seu provedor (onde está hospedado o www.sistemapersonalizado.com/) seja muito utilizado para envio de mensagens em massa por outros domínios, daí o seu e-mail enviado do formulário já é capturado por semelhança por estar no mesmo provedor (não no mesmo domínio).
Isto foi o que já aconteceu comigo, daí fui mudando de provedor até encontrar alguns que não permitiam este tipo de divulgação.

Pode ser também que no seu código tenha muito que possa ser alterado/melhorado para evitar que seja classificado como spam (procure por maiores informações no Google mesmo, pois agora não tenho aqui um link direto que possa lhe indicar - mas se encontrar o farei).

Espero ter conseguido ajudar um pouco (outros certamente farão melhor). Estou interessado em adquirir a nova versão do Adianti (só aguardando o lançamento) daí vi esta sua dúvida aqui e tentei ajudar.
JD

Amigo, um conselho...
Use a classe TMail, pois a função mail do php não é confiável.

  1. <?php
  2. class NewIssueForm extends TPage
  3. {
  4.     function __construct()
  5.     {
  6.         // create form, define actions...
  7.     }
  8.     function onSendEmail()
  9.     {
  10.         $mail = new TMail;
  11.         $mail->setFrom('from@email.com''From name');
  12.         $mail->setSubject('Subject');
  13.         $mail->setHtmlBody('html body');
  14.         $mail->addAddress('to@email.com''To name');
  15.         
  16.         $mail->SetUseSmtp();
  17.         $mail->SetSmtpHost('smtp.gmail.com'465);
  18.         $mail->SetSmtpUser('gmail_user''gmail_pass');
  19.         $mail->send();
  20.     }
  21. }
  22. ?>
AM

Não tenho nenhum exemplo sobre como usar o framework da adianti para enviar email, tem algum exemplo assim no tutor?
JD

O exemplo que sitei é encontrado em:

www.adianti.com.br/framework-miscellanea

A classe TMail é um wrapper sobre a classe PHPMailer, você pode baixar a aplicação changeman, que envia e-mails e ver como funciona.

www.adianti.com.br/framework-changeman