Php: файлы на почту

Тема в разделе "PHP программирование", создана пользователем buts, 3 июл 2005.

Статус темы:
Закрыта.
  1. buts

    buts Гость

    У меня добрый провайдер предоставил бесплатный траффик с мылом
    Терь хочу сделать фишки что бы можно было в скрипт ввести адрес файла
    http://server.ru/qwe.zip и оно его отправило на мыло

    Как такое на PHP сделать?
     
  2. admin

    admin Well-Known Member

    Регистрация:
    8 авг 2003
    Сообщения:
    2.811
    Симпатии:
    0
    Для: buts
    а просто
    кода щас не приведу, бо бошка не варит, но суть такая
    с помощью PHP залить файло на сервак в темповую директорию, отправить оттуда файло на мыло, удалить файло.
    кстати таких скриптов в сети было одно время валом.
    посмотри.
     
  3. Andrew Stephanoff

    Andrew Stephanoff Гость

    статья взята отсюда
    Код (Text):
    <?
    // Функции. Можно вынести в дpугой файл.

    class html_mime_mail {
    var $headers;
    var $multipart;
    var $mime;
    var $html;
    var $parts = array();

    function html_mime_mail($headers="") {
     $this->headers=$headers;
    }

    function add_html($html="") {
     $this->html.=$html;
    }

    function build_html($orig_boundary,$kod) {
     $this->multipart.="--$orig_boundary\n";
     if ($kod=='w' || $kod=='win' || $kod=='windows-1251') $kod='windows-1251';
     else $kod='koi8-r';
     $this->multipart.="Content-Type: text/html; charset=$kod\n";
     $this->multipart.="BCC: del@ipo.spb.ru\n";
     $this->multipart.="Content-Transfer-Encoding: Quot-Printed\n\n";
     $this->multipart.="$this->html\n\n";
    }


    function add_attachment($path="", $name = "", $c_type="application/octet-stream") {
     if (!file_exists($path.$name)) {
      print "File $path.$name dosn't exist.";
      return;
     }
     $fp=fopen($path.$name,"r");
     if (!$fp) {
      print "File $path.$name coudn't be read.";
      return;
     }
     $file=fread($fp, filesize($path.$name));
     fclose($fp);
     $this->parts[]=array("body"=>$file, "name"=>$name,"c_type"=>$c_type);
    }


    function build_part($i) {
     $message_part="";
     $message_part.="Content-Type: ".$this->parts[$i]["c_type"];
     if ($this->parts[$i]["name"]!="")
       $message_part.="; name = \"".$this->parts[$i]["name"]."\"\n";
     else
       $message_part.="\n";
     $message_part.="Content-Transfer-Encoding: base64\n";
     $message_part.="Content-Disposition: attachment; filename = \"".
       $this->parts[$i]["name"]."\"\n\n";
     $message_part.=chunk_split(base64_encode($this->parts[$i]["body"]))."\n";
     return $message_part;
    }


    function build_message($kod) {
     $boundary="=_".md5(uniqid(time()));
     $this->headers.="MIME-Version: 1.0\n";
     $this->headers.="Content-Type: multipart/mixed; boundary=\"$boundary\"\n";
     $this->multipart="";
     $this->multipart.="This is a MIME encoded message.\n\n";
     $this->build_html($boundary,$kod);
     for ($i=(count($this->parts)-1); $i>=0; $i--)
      $this->multipart.="--$boundary\n".$this->build_part($i);
     $this->mime = "$this->multipart--$boundary--\n";
    }


    function send($server, $to, $from, $subject="", $headers="") {

     $headers="To: $to\nFrom: $from\nSubject: $subject\nX-Mailer: The Mouse!\n$headers";
     $fp = fsockopen($server, 25, &$errno, &$errstr, 30);
     if (!$fp)
       die("Server $server. Connection failed: $errno, $errstr");
     fputs($fp,"HELO $server\n");
     fputs($fp,"MAIL FROM: $from\n");
     fputs($fp,"RCPT TO: $to\n");
     fputs($fp,"DATA\n");
     fputs($fp,$this->headers);
     if (strlen($headers))
      fputs($fp,"$headers\n");
     fputs($fp,$this->mime);
     fputs($fp,"\n.\nQUIT\n");
     while(!feof($fp))
      $resp.=fgets($fp,1024);
     fclose($fp);
    }
    }


    // *************************************************************************
    //
    //  В качестве аттача пpисоединяем html-письмо (открывается автоматически).
    //  Второй аттач - некоторый файл из каталога.
    //  Вот так вызывать все то, что написано выше:
    //
    // *************************************************************************


    $mail=new html_mime_mail();
    $mail->add_html("<html><body><center><h2>Пpивет!<br><br>".
            "<br>Посылаю двоичный файл [/bin/ls] ...".
            "</h2></center></body></html>");
    $mail->add_attachment("/bin/","ls");
    $mail->build_message('win'); // если не "win", то кодиpовка koi8
    $mail->send('ПОЧТОВЫЙ_ХОСТ_ВАШЕГО_ПРОВАЙДЕРА',
          'КОМУ_(E-MAIL)',
          'ОТ_КОГО_(E-MAIL)',
          'ТЕМА ПИСЬМА');

    //
    // После прихода письма качаем по ФТП оригинальный /bin/ls и сравниваем с
    // импортированным из письма:
    //
    //  X:\temp>fc /b ls ls2
    //  Сравнение файлов ls и LS2
    //  FC: различия не найдены
    //
    //
    // Внимание! Если у вас нет файла /bin/ls, то просто закомментируйте строку
    // $mail->add_attachment("/bin/","ls"), чтобы программа не пыталась присоединить
    // к письму неcуществующие файлы.
    //


    ?>

    >
     
  4. orbb

    orbb Гость

Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей