Dec 16
Digg
Stumbleupon
Technorati
Delicious

Indicação de sites utilizando Gmail/Google Apps na HostNet

Esse script é baseado no post como enviar emails autenticados pelo gmail/google apps. É altamente recomendado ler tal post antes de cair de mãos na massa no post de hoje.

Vamos a algumas considerações do script:
- Assim como a HostNet o Gmail também não permite forjar o From(”de”), ou seja, o from(”de”) sempre será o email que autenticará no Gmail. Eu utilizo o reply-to no cabeçalho para o destinatário quando clicar em responder aparecer o email de quem indicou e não do email do gmail.

- Outra coisa, no exemplo abaixo o debug está ligado, para desligar o debug basta comentar a linha abaixo:

      'debug'    => true, // Debug ligado

Esse script foi pedido pelo Ramon, acho que é isso, no post sobre o google apps.

<?php                                    
// Incluindo arquivo com a classe Mail   
require_once('Mail.php');                
 
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
  // Nome de quem está indicando o site    
  $indicador_nome = $_POST['meu_nome'];    
 
  // Email de quem está indicando o site
  $indicador_email = $_POST['meu_email'];
 
  // Nome de quem receberá o email
  $nome =  $_POST['nome_do_amigo'];
 
  // Email que receberá o email
  $to = $_POST['email_do_amigo'];
 
  // Nome de quem está enviando
  $from = "$indicador_nome <$indicador_email>";
 
  // Assunto da mensagem
  $subject = 'Indicação de site';
 
  /*                             
   Corpo da mensagem             
   Em caso de formulário alterar para a variável $_POST['CAMPO']
  */                                                            
  $body =<<<EOM                                                 
Indicação de site de $indicador_nome!!!                         
EOM;                                                            
 
  // Servidor do Gmail                                          
  $host = "ssl://smtp.gmail.com";                               
 
  // Email do Gmail que fará o envio autenticado                
  $username = 'noel@noelrocha.com';                        
 
  // Sua senha do GMAIL                                         
  $password = 'SECRETA';                                        
 
  // Cabeçalho do email                                         
  $headers = array (                                            
    'From'     => $from,                                        
    'Reply-to' => $from,                                        
    'To'       => $to,                                          
    'Subject'  => $subject                                      
  );                                                            
 
  $smtp = Mail::factory('smtp',                                 
    array (                                                     
      'host'     => $host,                                      
      'port'     => 465, // SMTPS(para mais detalhes ver /etc/services
      'auth'     => true,                                             
      'debug'    => true, // Debug ligado                             
      'username' => $username,                                        
      'password' => $password                                         
    )                                                                 
  );                                                                  
 
  // Efetuando o envio autenticado                                    
  $mail = $smtp->send($to, $headers, $body);                          
 
  // Verificando se houve erro                                        
  if (PEAR::isError($mail)) {                                         
    echo("Error" . $mail->getMessage());
  } else {
    echo("Email enviado com sucesso!!");
  }
}
?>
  <form method="POST">
    Nome:<br/>
    <input type="txt" name="meu_nome"><br/>
    Email:<br/>
    <input type="txt" name="meu_email"><br/>
    Nome do seu amigo:<br/>
    <input type="txt" name="nome_do_amigo"><br/>
    Email do amigo:<br/>
    <input type="txt" name="email_do_amigo"><br/>
    <br/>
    <input type="submit">
  </form>

Author: Noel Rocha

5 Comments

Cassio Santos
December 17, 2008

Muito bom!

Estamos acompanhando todas as suas dicas.

Alberto
March 30, 2009

Estou tentando criar um formulário de contato para enviar pelo gmail/google apps porém está dando erro.
Poderia me ajudar?
Da forma acima não estou conseguindo …
tinha um arquivo para envio do e-mail que tinha o código em php … porém com a mudança para o gmail está sempre dando erro.

Noel Rocha
March 30, 2009

@Alberto

Qual erro está dando? Tem algum endereço para eu dar uma olhada no formulário?

Alberto
March 30, 2009

Pode entrar no meu site e abrir o contato

Noel Rocha
March 30, 2009

@Alberto, Se importaria em me mostrar o conteúdo do contato_envia.php? Por favor, lembre de retirar dados sigilosos como senha e email utilizado para a autenticação.

Comments RSS TrackBack Identifier URI

Leave a comment