Ir para conteúdo
Fórum Script Brasil
  • 0

SMTP enviando e-mail Autenticado


jissa

Pergunta

Segue classe simples com exemplo para envio de e-mail autenticado

smtp.class.php

<?
class Smtp{

var $conn;
var $usuario_smtp;
var $senha_smtp;
var $debug;

function Smtp($servidor_smtp){
    $this->conn = fsockopen($servidor_smtp, 25, $errno, $errstr, 30);
    $this->AdicionaDadosSMTP("EHLO $servidor_smtp");
    }
function Autentica(){
    $this->AdicionaDadosSMTP("AUTH LOGIN");
    $this->AdicionaDadosSMTP(base64_encode($this->user));
    $this->AdicionaDadosSMTP(base64_encode($this->pass));
}

function Send($para, $de, $assunto, $mensagem){
    $this->Autentica();
    $this->AdicionaDadosSMTP("MAIL FROM: " . $de);
    $this->AdicionaDadosSMTP("RCPT TO: " . $para);
    $this->AdicionaDadosSMTP("DATA");
    $this->AdicionaDadosSMTP($this->CabecTO($para, $de, $assunto));
    $this->AdicionaDadosSMTP("\r\n");
    $this->AdicionaDadosSMTP($mensagem);
    $this->AdicionaDadosSMTP(".");
    $this->Close();
    if(isset($this->conn)){
    return true;
    }else{
        return false;
    }
}

function AdicionaDadosSMTP($valor){
    return fputs($this->conn, $valor . "\r\n");
}

function CabecTO($para, $de, $assunto){
    $header = "Message-Id: <". date('YmdHis').".". md5(microtime()).".". strtoupper($de) ."> \r\n";
    $header .= "From: <" . $de . "> \r\n";
    $header .= "To: <".$para."> \r\n";
    $header .= "Subject: ".$assunto." \r\n";
    $header .= "Date: ". date('D, d M Y H:i:s O') ." \r\n";
    $header .= "X-MSMail-Priority: High \r\n";
    $header .= "Content-Type: Text/HTML";
    return $header;
}

function Close(){
    $this->AdicionaDadosSMTP("QUIT");
    if($this->debug == true){
        while (!feof ($this->conn)) {
            fgets($this->conn) . "<br>\n";
        }
    }
    return fclose($this->conn);
}
}
?>
configura_smtp.php
<?
###Inclui a Classe ###
include "smtp.class.php";

###Configuração dos dados de conexão com o servidor###
###############################################################################################################
$ServidorEmail = "mail.seuservidor"; //coloque a mesma configuração que coloca no SMTP em cliente de e-mail
$EmailParaAutenticar = "endereco@email"; coloque o endereco de e-mail
$SenhaEmail = "senha"; //coloque a senha de seu e-mail
###############################################################################################################


###Servidor que vai se conectar ###
$servidor_smtp = $ServidorEmail; 
###e-mail para autenticação ###
$smtp->usuario_smtp = EmailParaAutenticar;

###senha do e-mail para autenticação ###
$smtp->senha_smtp = $SenhaEmail; /* senha do usuario do servidor SMTP*/

$smtp = new Smtp($servidor_smtp);
$smtp->debug =true;
?>
envia_email.php
<?
include "configura_smtp.php";


### Dados para o envio #####

$de= "email@quequerqueapareca; /* coloque aqui o e-mail que vai aparecer */
$para = "email@paraquemvai"; /* para quem enviar o e-mail*/
$assunto = "Teste de e-mail utilizando SMTP"; /* assunto da mensagem */
$mensagem = "<b>Teste de Envio de Mensagem utilizando classe smtp</b><br>";

### Envia a mensagem ###
$smtp->Send($para, $de, $assunto, $mensagem);/* faz o envio da mensagem */
?>

Editado por jissa
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Bom dia,

Sou novata e fiz meu primeiro site seguindo tutoriais da net.Porem estou com problemas para receber e-mails atravez de meu formulario.A uolhost disse q somente e possivel se o formulario tiver autenticacao smtp.mas quando peco suporte quanto a isso eles falam falam e num explicam nada!

Gostaria,se possivel,que me ensinasse a adicionar essa tal d autenticacao smtp no meu arquivo enviar.php

Meu arquivo esta assim:

<?php

##########################################################

///////////////////////////////////////////////////// ###

/// Autor: Mateus Campos //// ###

/// E-mail: mateuscampos@globo.com //// ###

/// Site: www.centralwarez.com //// ###

/// MSN: mateus@centralwarez.com //// ###

/// Obs: favor não retirar os nossos créditos!!! //// ###

///////////////////////////////////////////////////// ###

##########################################################

// aqui começa o script

//pega as variaveis por POST

$nome = $_POST["nome"];

$site = $_POST["site"];

$email = $_POST["email"];

$fone = $_POST["fone"];

$assunto = $_POST["assunto"];

$mensagem = $_POST["mensagem"];

global $email; //função para validar a variável $email no script todo

$data = date("d/m/y"); //função para pegar a data de envio do e-mail

$ip = $_SERVER['REMOTE_ADDR']; //função para pegar o ip do usuário

$navegador = $_SERVER['HTTP_USER_AGENT']; //função para pegar o navegador do visitante

$hora = date("H:i"); //para pegar a hora com a função date

//aqui envia o e-mail para você

mail ("contato@japaservice.com", //email aonde o php vai enviar os dados do form

"$assunto",

"Nome: $nome\nData: $data\nIp: $ip\nNavegador: $navegador\nHora: $hora\nSite: $site\nE-mail: $email\nTelefone: $fone\n\nMensagem: $mensagem",

"From: $email"

);

//aqui são as configurações para enviar o e-mail para o visitante

$site = "www.japaservice.com"; //o e-mail que aparecerá na caixa postal do visitante

$titulo = "Japa Service - Comunicação Visual e Toldos"; //titulo da mensagem enviada para o visitante

$msg = "$nome, obrigado por entrar em contato conosco, em breve entraremos em contato";

//aqui envia o e-mail de auto-resposta para o visitante

mail("$email",

"$titulo",

"$msg",

"From: $site"

);

echo "<p align=center>$nome, sua mensagem foi enviada com sucesso!</p>";

echo "<p align=center>Estaremos retornando em breve.</p>";

?>

Desde já agradeco a quem puder me dar uma luz!!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...