Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Rodrigo Miss

[Resolvido] Servidor SMTP

Recommended Posts

Não consegiu baixar esse ...

mais ja baixei o Local SMTP Relay (Trial) e naum funfa pra enviar pra @hotmail.com ....

 

Alguem ae tem alguma ferramenta boa pra trabalhar com envio de email em ambiente windows ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Assim, acho que para você criar um servidor de e-mail para utilização você pode ter vários problemas.

 

Hotmail é um porre, ele usa um negocio chamado SPF. Tipo, tu tem um dominio, ele ta cadastrado com um ip, o teu servidor de IP tem que ser o mesmo IP, ou range de IP.

 

Ehg mais ou menos isso, e o hotmail eh bem rigido com isso.

 

de uma lida em

www.antispam.br/admin/spf/

 

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu quando vou mandar e-mail, utilizo uma classe modificada por mim pra usar um smtp de algum servidor.

 

Segue código, espero ajudar

 

PHP
<?

class Smtp{

        //Creditos: Red neck adaptada por Micael Vianna (http://aiatola.net)

       

        var $conn;

        var $user;

        var $pass;

        var $html;

        var $debug = false;

        var $logado = false;

        var $houveErro = false;

        var $erro;

        function Smtp($host,$porta){

          $this->conn = fsockopen($host, $porta, $errno, $errstr, 30);

          $this->Put("EHLO $host");

        }

        function Auth(){

          $this->Put("AUTH LOGIN");

          $this->Put(base64_encode($this->user));

          $this->Put(base64_encode($this->pass));

        }

        function Send($toName, $to, $fromName, $from, $replyTo, $subject, $msg)

        {

          if(isset($this->conn))

          {

                // se nao estiver logado, loga

                if (!$this->logado)

                {

                                $this->Auth();

                                $this->logado = true;

                        }

                        $this->Put("MAIL FROM: <" . $from.">");

                        $this->Put("RCPT TO: <" . $to.">");

                        $this->Put("DATA");

                        $this->Put($this->toHeader($toName."<".$to.">", $fromName."<".$from.">", $fromName."<".$replyTo.">", $subject));

                        $this->Put("rn");

                        $this->Put($msg);

                        $this->Put(".");

                        if ($this->houveErro) return false;

                        else return true;

                }

                else

                     return false;       

        }

       

        function Put($value)

        {

                // soh executa proxima linha se nao houver erro

                if ($this->houveErro == false)

                {

                        $dados = fputs($this->conn, $value . "rn");

                        $this->verificaRetorno(fgets($this->conn));

                        return $dados;

                }

        }

       

        function getRetorno($valor)

        {

        return $valor{0}.$valor{1}.$valor{2};

        }

        function toHeader($to, $from, $replyTo, $subject){

          $header  = "Message-Id: <". date('YmdHis').".". md5(microtime()).".". strtoupper($from) ."> rn";

          $header .= "From: ". $from . " rn";

          $header .= "To: ".$to." rn";

          $header .= "Reply-To: ".$replyTo."rn";

          $header .= "Subject: ".$subject." rn";

          $header .= "Date: ". date('D, d M Y H:i:s O') ." rn";

          $header .= "Content-Type: text/html; charset=iso-8859-1 rn";

          $header .= "X-MSMail-Priority: High rn";

          return $header;

        }

        function Close(){

          $this->Put("QUIT");

          return fclose($this->conn);

        }

        function getErro()

        {

                return $this->erro;

        }

        function verificaRetorno($msg)

        {

                $retorno = $this->getRetorno($msg);

                if ($this->debug == true)

                        echo $msg;

                if ($retorno == "535")

                {       

                        $this->erro = 1;

                        $this->houveErro = true;

                }

                // destinatario rejeitado

                if ($retorno == "450")

                {       

                        $this->erro = 2;

                        $this->houveErro = true;       

                }

                // limit for processing requests from your host

                if ($retorno == "451")

                {       

                        $this->erro = 3;

                        $this->houveErro = true;

                }

                // Service not available

                if ($retorno == "421")

                {       $this->erro = 4;

                        $this->houveErro = true;

                }

                // tem algum erro

                if (substr($retorno,0,1) == '4' || substr($retorno,0,1) == '5')

                {

                        $this->erro = 5;

                        $this->houveErro = true;

                }

        }

       

       

}

 

/*

EXEMPLO

        $smtp = new Smtp("mail.dominio.com.br",25);

        $smtp->debug = true;

        $smtp->user = "login";

        $smtp->pass = "senha";

        if ($smtp->Send('DESTINATARIO','destinatario@dominio.com.br','REMETENTE','remetente@terra.com.br','replyto@dominio.com.br','ASSUNTO0',"TESTE"))

                { echo "ok"; }

        else

        {

                echo "ERRO".$smtp->getErro();

        }

        $smtp->Close();

 

*/

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

bah kra ..

tentei enviar email para usuarios da Hotmail.com e gmail.com, a sua funcção me retorna Ok (true), mais naum xega nda na caixa de mensagem do destinatario ....

 

$smtp = new Smtp("smtp.gmail.com", 465);

$smtp->debug = true;

$smtp->user = "login";

$smtp->pass = "senha";

if ($smtp->Send('DESTINATARIO','destinatario@dominio.com.br','REMETENTE','remetente@terra.com.br','replyto@dominio.com.br','ASSUNTO0',"TESTE"))

{ echo "ok"; }

else

{

echo "ERRO".$smtp->getErro();

}

$smtp->Close();

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora, baixei a classe PHPMailer, e me da o seguinte erro:

 

Warning: fsockopen() [function.fsockopen]: unable to connect to ssl://smtp.gmail.com:465 (Unable to find the socket transport "ssl" - did you forget to enable it when you configured PHP?)

 

Afinal, como q essa galera toda faz pra enviar email?????????

Lembrando: Plataforma Win + PHP5 -> Tentando enviar email para usuario da hotmail ....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse Gmail é embassado, ele usa esse TLS, que codifica a parada...

Eu to fazendo a minha própria classe, alguém sabe como que eu posso iniciar ele por socket?

Se eu dar um STARTTLS, depois de alguns instantes ele fecha a conexão...

Valew

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha ai pessoal eu usei essa classe citada acima e deu este error...

 

250-mail.seduc.pa.gov.br

250-PIPELINING 250-SIZE 10240000

250-ETRN 250 8BITMIME

502 Error: command not implemented 502 Error: command not implemented

 

Aqui uso ubuntu 7.10 e o servirdo smtp da minha empresa que funciona normalmente.

 

Alguem pode ajuda?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.