У кого есть скрипт почты???

Discussion in 'PHP' started by 4NT1P0V, 15 Apr 2008.

  1. 4NT1P0V

    4NT1P0V Member

    Joined:
    15 Jan 2008
    Messages:
    110
    Likes Received:
    28
    Reputations:
    -7
    У кого есть скрипт для анонимной отправки почты с вложениями...??
     
  2. Sleep

    Sleep Elder - Старейшина

    Joined:
    31 Oct 2007
    Messages:
    271
    Likes Received:
    65
    Reputations:
    4
    /showpost.php?p=330793&postcount=65
     
  3. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,194
    Reputations:
    252
    index.php

    PHP:
    <HTML
    <
    HEAD
    <
    TITLE>Отправка сообщения с вложением</TITLE
    </
    HEAD
    <
    BODY
    <
    H3> <center><font color=#1E90FF>Отправка сообщения с вложением</font></H3> 
    <center
    <
    table width=1 border=0
    <
    form action='mail.php' enctype='multipart/form-data' method='post'>
    <
    tr><td width=50%>To:</td><td align=right><input type=text name=mail_to maxlength=32></td></tr
    <
    tr><td width=50%>Subject:</td><td align=right><input type=text name=mail_subject maxlength=64></td></tr
    <
    tr><td colspan=2>Сообщение:<br><textarea cols=50 rows=8 name=mail_msg></textarea></td
    <
    tr><td width=50%>Photo:</td><td align=right><input type=file name=mail_file maxlength=64></td></tr
    </
    tr><tr><td colspan=2><input type=submit value='Отправить'></td></tr
    </
    form
    </
    table
    </
    center
    </
    BODY
    </
    HTML>
    mail.php

    PHP:
    <?php 

      
    if(empty($_POST['mail_to'])) exit("Введите адрес получателя"); 

      
    // проверяем правильности заполнения с помощью регулярного выражения 

      
    if (!preg_match("/^[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}$/i"$_POST['mail_to'])) exit("Введите адрес в виде somebody@server.com"); 

      
    $picture ""

      
    // Если поле выбора вложения не пустое - закачиваем его на сервер 

      
    if (!empty($_FILES['mail_file']['tmp_name'])) 

      { 

        
    // Закачиваем файл 

        
    $path $_FILES['mail_file']['name']; 

        if (
    copy($_FILES['mail_file']['tmp_name'], $path)) $picture $path

      } 

      
    $thm $_POST['mail_subject'];

      
    $msg $_POST['mail_msg'];

      
    $mail_to $_POST['mail_to'];

      
    // Отправляем почтовое сообщение 

      
    if(empty($picture)) mail($mail_to$thm$msg); 

      else 
    send_mail($mail_to$thm$msg$picture); 

      
    // Вспомогательная функция для отправки почтового сообщения с вложением (Trianon)

      
    function send_mail($mail_to$thema$html$path)   

      { if (
    $path) {  

        
    $fp fopen($path,"rb");   

        if (!
    $fp)   

        { print 
    "Cannot open file";   

          exit();   

        }   

        
    $file fread($fpfilesize($path));   

        
    fclose($fp);   

        }  

        
    $name "file.ext"// в этой переменной надо сформировать имя файла (без всякого пути)  

        
    $EOL "\r\n"// ограничитель строк, некоторые почтовые сервера требуют \n - подобрать опытным путём

        
    $boundary     "--".md5(uniqid(time()));  // любая строка, которой не будет ниже в потоке данных.  

        
    $headers    "MIME-Version: 1.0;$EOL";   

        
    $headers   .= "Content-Type: multipart/mixed; boundary=\"$boundary\"$EOL";  

        
    $headers   .= "From: address@server.com";  

          

        
    $multipart  "--$boundary$EOL";   

        
    $multipart .= "Content-Type: text/html; charset=windows-1253$EOL";   

        
    $multipart .= "Content-Transfer-Encoding: base64$EOL";   

        
    $multipart .= $EOL// раздел между заголовками и телом html-части 

        
    $multipart .= chunk_split(base64_encode($html));   



        
    $multipart .=  "$EOL--$boundary$EOL";   

        
    $multipart .= "Content-Type: application/octet-stream; name=\"$name\"$EOL";   

        
    $multipart .= "Content-Transfer-Encoding: base64$EOL";   

        
    $multipart .= "Content-Disposition: attachment; filename=\"$name\"$EOL";   

        
    $multipart .= $EOL// раздел между заголовками и телом прикрепленного файла 

        
    $multipart .= chunk_split(base64_encode($file));   



        
    $multipart .= "$EOL--$boundary--$EOL";   

          

            if(!
    mail($mail_to$thema$multipart$headers))   

             {return 
    False;           //если не письмо не отправлено

          
    }  

        else { 
    //// если письмо отправлено

        
    return True;  

        }  

      exit;  

      }

    ?>
     
  4. 4NT1P0V

    4NT1P0V Member

    Joined:
    15 Jan 2008
    Messages:
    110
    Likes Received:
    28
    Reputations:
    -7
    Isis Спасибо! но при отправке почты с вложением ошибка((
    Warning: copy(файл.txt) [function.copy]: failed to open stream: Permission denied in vzlom.in/public_html/tools/mmail/mail.php on line 21
     
  5. SeGaLWS

    SeGaLWS Elder - Старейшина

    Joined:
    13 Jan 2008
    Messages:
    38
    Likes Received:
    8
    Reputations:
    0
    chmod на папку mmail проставь