Jump to content
Fórum Script Brasil
  • 0

SMTP enviando e-mail Autenticado


jissa

Question

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 */
?>

Edited by jissa
Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      651.8k
×
×
  • Create New...