1. PHP / Говнокод #1537

    +151

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    //клас для отправления писем через smtp
    //способ приминения
    //функция хеадерс(ящик куда отправлять,ящик откуда отправляется,почтовик(пример @yandex.ru), тема письма)
    //$headers = $post->headers($users[$i]."@yandex.ru",$users[$i]."@yandex.ru","@yandex.ru",$result['title']);
    //функция отправка (текст письма, заголовок, ящик получателя, адрес отправителя,имя пользователя, пароль, домен почтовика(пример yandex.ru))
    //$post->send($result_text,$headers,$users[$i]."@yandex.ru",$users[$i]."@yandex.ru",$users[$i],$pass[$i],"yandex.ru");
      class mailer
    {
    
        
      function get_data($smtp_conn)
      {
      $data="";
      while($str = fgets($smtp_conn,515))
      {
        $data .= $str;
        if(substr($str,3,1) == " ") { break; }
      }
      return $data;
      }
      
      
      
     function headers($to,$from,$prefix,$zag)
     { 
    $header="Date: ".date("D, j M Y G:i:s")." +0700\r\n";
    $header.="From: <".$from.">\r\n";
    $header.="X-Mailer: The Bat! (v3.99.3) Professional\r\n";
    $header.="X-Priority: 3 (Normal)\r\n";
    $header.="Message-ID: <172562218.".date("YmjHis").$prefix.">\r\n";
    $header.="To: <".$to.">\r\n";
    $header.="Subject: ".$zag."\r\n";
    $header.="MIME-Version: 1.0\r\n";
    $header.="Content-Type: text/html; charset=utf-8\r\n";
    $header.="Content-Transfer-Encoding: 8bit\r\n";
    return $header; 
     }
     
     
     
     function send($text, $header, $to, $from, $login , $pass, $mailer)
     {
     
      $fin = new mailer;
      
      
     $smtp_conn = fsockopen("smtp.".$mailer, 25,$errno, $errstr, 10);  
     $data = $fin->get_data($smtp_conn); 
      
     fputs($smtp_conn,"EHLO ".$mailer."\r\n");
    $data = $fin->get_data($smtp_conn);
    
    fputs($smtp_conn,"AUTH LOGIN\r\n");
    $data = $fin->get_data($smtp_conn);
    
    fputs($smtp_conn,base64_encode($login)."\r\n");
    $data = $fin->get_data($smtp_conn);
    
    fputs($smtp_conn,base64_encode($pass)."\r\n");
    $data = $fin->get_data($smtp_conn);
    
    fputs($smtp_conn,"MAIL FROM:".$from."\r\n");
    $data = $fin->get_data($smtp_conn);
    
    fputs($smtp_conn,"RCPT TO:".$to."\r\n");
    $data = $fin->get_data($smtp_conn);
    
    fputs($smtp_conn,"DATA\r\n");
    $data = $fin->get_data($smtp_conn);
    
    fputs($smtp_conn,$header."\r\n".$text."\r\n.\r\n");
    $data = $fin->get_data($smtp_conn);
    
    fputs($smtp_conn,"QUIT\r\n");
    $data = $fin->get_data($smtp_conn);
    
    
     }
    
    }

    клас для отправления писем через smtp

    Запостил: dodther, 12 Августа 2009

    Комментарии (15) RSS

    • ну и как, отправляет? :) EHLO mailer :D
      Ответить
    • В чем собственно говнокодость?
      Обоснуйте.
      Ответить
    • Johnatan:
      1) мне кажется в том, что php сам умеет отправлять письма.
      2) создавать экземпляр класса внутри себя самого - ересь
      3) да и гет_дата какая-то странная

      очень напомнило http://us3.php.net/manual/en/function.fsockopen.php#23481
      Ответить
    • отправляет :)
      но вот вызов самого себя....

      to guest
      а функция mail() режется многими почтовиками. например как спам
      Ответить
      • почтовики не знают как ты отправляешь письмо. Честно.
        Ответить
        • А вот тут вы батенька заблуждаетесь. в заголовках письма
          сдается вся инфа о письме вплоть до файла на сервере который отправил письмо или если через SMTP то каким почтовиком отправлено
          Ответить
          • Неужели только у меня функция mail отправляет письма по протоколу SMTP?
            Ответить
            • отправляет. но не всегда доходит. вот к примеру на mail.ru ни разу не дошло :(
              Ответить
    • Кривовато, но то, что отдельным классом, так иногда надо повыкабениваться, и обычный смтп не поможет - например когда собираешь цепочку сокс5, а потом через нее посылаешь :)
      Ответить
    • Прозреваю, что govnokod начинают использовать как pastebin.
      Ответить
    • Не всегда тема письма будет отправлена правильно.
      Ответить
    • слово "приминения" в комменте как бы намекает, что нас ожидает дальше
      Ответить

    Добавить комментарий