Página 3 de 3 PrimeiroPrimeiro 123
+ Responder ao Tópico



  1. #11
    lrezende
    aê galera, beleuza?

    deculpa a demora...

    aí vai...

    ---------------arquivo teste.php
    <?php

    include "mime_mail.inc";
    include "smtp_mail.inc";

    $smtp_server = "your.smtp.server";
    $from = "you@yourdomain.com";
    $to = "to@dstdomain.com";
    $subject = "TEST";
    $body = "<html><body><h1>That&acute;s ok</h1></body></html>";

    $mail = new mime_mail;

    $mail->from = $from;
    $mail->to = $to;
    $mail->subject = $subject;
    $mail->body = $body;

    $data = $mail->get_mail();
    $smtp = new smtp_mail;
    $smtp->send_email($smtp_server,$from,$to,$data);
    ?>

    ---------------arquivo smtp_mail.inc
    <?php
    class smtp_mail{
    var $fp = false;
    var $lastmsg = "";

    function read_line(){
    $ret = false;
    $line = fgets($this->fp,1024);

    if(ereg("^([0-9]+).(.*)$",$line,&$data)){
    $recv_code = $data[1];
    $recv_msg = $data[2];
    $ret = array($recv_code,$recv_msg);
    }//fim do if
    return $ret;
    }//fim da função read_line

    function dialogue($code,$cmd){
    $ret= true;
    fwrite($this->fp,$cmd."\r\n"-);
    $line = $this->read_line($this->fp);

    if ($line == false){
    $ret = false;
    $this->lastmsg = "";
    }//fim do if $line == false
    else{
    $this->lastmsg = "$line[0] $line[1]";
    if ($line[0] != $code)
    $ret = false;
    }//fim do else
    return $ret;
    }//fim da funçao dialogue

    function error_message(){
    echo "SMTP protocol failure (".$this->lastmsg."-).<br>";
    }//fim da função error

    function crlf_encode($data){
    //certifica-se que os dados terminam com um caractere de nova linha
    $data .= "\n";
    //remove todos os CRs e substitue os LFs por CRLFs
    $data = str_replace("\n","\r\n", str_replace("\r","",$data));
    //no protocolo SMTP, uma linha composta em um . tem um significado especial, portanto escapamos
    //disso anexando um espaço
    $data = str_replace("\n.\r\n","\n. \r\n",$data);
    return $data;
    }//fim da função crlf_encode

    function handle_email($from,$to,$data){
    //divide a lista de destinatários
    $rcpts = explode(",",$to);
    $err = false;
    if (!$this->dialogue(250,"HELO ara"-))
    $err = true;
    if ($err || !$this->dialogue(250,"MAIL FROM:$from"-))
    $err = true;
    if ($err || !$this->dialogue(250,"RCPT TO:$to"-))
    $err = true;


    for ($i = 0; !$err && $i < count($rcpts);$i++){
    if (!$this->dialogue(250,"RCPT TO:$rcpts[$i]"-))
    $err = true;
    }//fim do for
    if ($err || !$this->dialogue(354,"DATA"-) ||
    !fwrite($this->fp,$data) ||
    !$this->dialogue(250,"."-) ||
    !$this->dialogue(221,"QUIT"-))
    $err = true;

    if ($err)
    $this->error_message();

    return !$err;
    }//fim da função handle_email

    function connect($hostname){
    $ret = false;
    $this -> fp = fsockopen($hostname,25);
    if ($this->fp)
    $ret = true;
    return $ret;
    }//fim da função connect

    function send_email($hostname,$from,$to,$data,$crlf_encode = 0){
    if(!$this->connect($hostname)){
    echo "Não pode abrir o soquete<br>\n";
    return false;
    }

    $line = $this->read_line();
    $ret = false;
    if ($line && $line[0]=="220"-){
    if ($crlf_encode)
    $data = $this->crlf_encode($data);
    $ret = $this->handle_email($from,$to,$data);
    }//fim do if
    else{
    $this->error_message();
    }//fim do else
    fclose($this->fp);
    return $ret;
    }//fim da função send email

    }//fim da classe smtp
    ?>

    ---------------arquivo mime_mail.inc

    <?php

    class mime_mail{
    var $parts;
    var $to;
    var $from;
    var $headers;
    var $subject;
    var $body;

    function mime_mail(){
    $this->parts=array();
    $this->to="";
    $this->from="";
    $this->subject="";
    $this->body="";
    $this->headers="";
    }//fim da função mime_mail

    function add_attachment($message,$name = "",$ctype = "text/plain"-){
    $this->parts[] = array(
    "ctype" => $ctype,
    "message"=> $message,
    "encode" => $encode,
    "name" => $name );
    }//fim da funcao add_attachement

    function build_message($part){
    $message = $part["message"];
    $message = chunk_split(base64_encode($message));
    $encoding = "base64";
    return "Content-Type: ".$part["ctype"].($part["name"]? "; name = \"".$part["name"]."\"":""-).
    "\nContent-Transfer-Encoding: $encoding\n\n$message\n";
    }//fim da função buid_message

    function build_multipart(){
    $boundary = "b".md5(uniqid(time()));
    $multipart = "Content-Type: multipart/mixed; boundary= $boundary\n\nThis is a MIME encoded message.\n\n--$boundary";
    for($i = sizeof($this->parts)-1;$i>=0;$i--){
    $multipart .= "\n".$this->build_message($this->parts[$i])."--$boundary";
    }//fim do for
    return $multipart .= "--\n";
    }//fim da funcao build_multipart

    function get_mail($complete = true){
    $mime="";
    if (!empty($this->from)) $mime .= "From: ".$this->from. "\n";
    if (!empty($this->headers)) $mime .= $this->headers. "\n";
    if ($complete){
    if (!empty($this->to)) $mime .= "To: ".$this->to."\n";
    if (!empty($this->subject)) $mime .= "Subject: ".$this->subject."\n";
    }//fim do if complete
    if (!empty($this->body))
    $this->add_attachment($this->body, "", "text/html"-);
    $mime .= "MIME-Version: 1.0\n".$this->build_multipart();
    return $mime;
    }//fim da funcao get_mail

    function send(){
    $mime = $this->get_mail(false);
    mail($this->to, $this->subject, "", $mime);
    }//fim da função send

    }//fim da classe mime_mail
    ?>


    tenta aí galera.... aqui tá tudo ok... deve ficar ok com vcs também....

    qq coisa estamos aí!

    fuiz....

    [ Esta mensagem foi editada por: lrezende em 21-01-2003 18:30 ]

  2. #12
    AndrewAmorimdaSilva
    Tentei, criei o arquivo teste.php e copiei o fonte, mudei o server e os e-mail...mas tá dando erro...e aqueles arquivos .inc???

    erro:

    Parse error: parse error, unexpected &acute&acute; in /var/www/teste.php on line 44



  3. #13
    Mr_Mind
    vcs nao precisam de correr sendmail ou outro qlqr MTA mas sim devem configurar o vosso PHP-Nuke para usar um SMTP server qualquer (o do vosso ISP por exemplo!!). Isto tudo para que ele envie mails, claro!!! <IMG SRC="images/forum/icons/icon_wink.gif">

  4. #14
    _Luigi_
    Mr_mind vc pode nos ensinar como fazer isso?






Tópicos Similares

  1. Squirrel mail urgente!
    Por no fórum Servidores de Rede
    Respostas: 5
    Último Post: 23-08-2002, 13:23
  2. Me ajudem!! URGENTE!!!! Filtros de Impressão!!!!
    Por no fórum Servidores de Rede
    Respostas: 1
    Último Post: 16-08-2002, 16:41
  3. URGENTE!!! vnc através firewall
    Por doug no fórum Servidores de Rede
    Respostas: 2
    Último Post: 13-08-2002, 09:28
  4. Netsaint URGENTE
    Por SergioBZ no fórum Servidores de Rede
    Respostas: 0
    Último Post: 12-08-2002, 13:54
  5. Bloquear sites no squid - urgente
    Por bauer no fórum Servidores de Rede
    Respostas: 1
    Último Post: 21-05-2002, 22:53

Visite: BR-Linux ·  VivaOLinux ·  Dicas-L