За последние 24 часа нас посетили 17578 программистов и 1315 роботов. Сейчас ищут 1717 программистов ...

отправке E-mail через функций telneta Нужна не большая помощ

Тема в разделе "Работа с почтой", создана пользователем tretresh, 14 ноя 2009.

  1. tretresh

    tretresh Активный пользователь

    С нами с:
    14 ноя 2009
    Сообщения:
    5
    Симпатии:
    0
    Доброго времени суток всем. Вот решил написал скрипт по отправке емаилов через ящик yandex.ru
    Написал сам код в php и сделал форму в html чтоб адрес водить кому отправить хочеш

    Содержание html файла

    HTML:
    1. <form name="form1" method="post" action="email1.php">
    2. <input type="text" name="email"> обратный email <br>
    3. <input type="submit" name="Submit" value="отправить">
    4. </form>
    Все работает отлично водишь адрес кому хочешь отправить письмо, жмешь на кнопочку и вот она уже доставлено ... но теперь встала проблема как отправлять автоматически на список адресов.
    Подскажите пожалуйста как надо переписать код чтобы в место того чтобы данные водились не с формы а брались построчно из текстого файла.
    Надо изменить две переменые post в строках приведеных ниже и что то дописать но у меня не как получается этого сделать ...

    PHP:
    1. $header.="To:".$_POST['email']."\r\n";
    и
    PHP:
    1. fputs($smtp_conn,"RCPT TO:".$_POST['email']."\r\n");

    Содержание cамо скрипта email1.php


    PHP:
    1. <?
    2. function get_data($smtp_conn)
    3. {
    4. $data="";
    5. while($str = fgets($smtp_conn,515))
    6. {
    7. $data .= $str;
    8. if(substr($str,3,1) == " ") { break; }
    9. }
    10. return $data;
    11. }
    12.  
    13. $header="Date: ".date("D, j M Y G:i:s")." +0700\r\n";
    14. $header.="From: =?windows-1251?Q?".str_replace("+","_",str_replace("%","=",urlencode('Проверка')))."?= <proverka@yandex.ru>\r\n";
    15. $header.="X-Mailer: The Bat! (v3.99.3) Professional\r\n";
    16. $header.="Reply-To: =?windows-1251?Q?".str_replace("+","_",str_replace("%","=",urlencode(' Проверка')))."?= <proverka@yandex.ru>\r\n";
    17. $header.="X-Priority: 3 (Normal)\r\n";
    18. $header.="Message-ID: <172562218.".date("YmjHis")."@mail.ru>\r\n";
    19. $header.="To:".$_POST['email']."\r\n";
    20. $header.="Subject: =?windows-1251?Q?".str_replace("+","_",str_replace("%","=",urlencode('Проверка')))."?=\r\n";
    21. $header.="MIME-Version: 1.0\r\n";
    22. $header.="Content-Type: text/plain; charset=windows-1251\r\n";
    23. $header.="Content-Transfer-Encoding: 8bit\r\n";
    24.  
    25. $text="Проверка";
    26.  
    27.  
    28. $smtp_conn = fsockopen("smtp.yandex.ru", 25,$errno, $errstr, 10);
    29. if(!$smtp_conn) {print "соединение с серверов не прошло"; fclose($smtp_conn); exit;}
    30. $data = get_data($smtp_conn);
    31.  
    32. fputs($smtp_conn,"HELO yandex.ru\r\n");
    33. $code = substr(get_data($smtp_conn),0,3);
    34. if($code != 250) {print "ошибка приветсвия HELO"; fclose($smtp_conn); exit;}
    35.  
    36. fputs($smtp_conn,"AUTH LOGIN\r\n");
    37. $code = substr(get_data($smtp_conn),0,3);
    38. if($code != 334) {print "сервер не разрешил начать авторизацию"; fclose($smtp_conn); exit;}
    39.  
    40. fputs($smtp_conn,base64_encode("tretresh5")."\r\n");
    41. $code = substr(get_data($smtp_conn),0,3);
    42. if($code != 334) {print "ошибка доступа к такому юзеру"; fclose($smtp_conn); exit;}
    43.  
    44. fputs($smtp_conn,base64_encode("qwertyazsxdc")."\r\n");
    45. $code = substr(get_data($smtp_conn),0,3);
    46. if($code != 235) {print "не правильный пароль"; fclose($smtp_conn); exit;}
    47.  
    48. fputs($smtp_conn, "MAIL FROM:tretresh5@yandex.ru\r\n");
    49. $code = substr(get_data($smtp_conn),0,3);
    50. if($code != 250) {print "сервер отказал в команде MAIL FROM"; fclose($smtp_conn); exit;}
    51.  
    52. fputs($smtp_conn,"RCPT TO:".$_POST['email']."\r\n");
    53. $code = substr(get_data($smtp_conn),0,3);
    54. if($code != 250 AND $code != 251) {print "Сервер не принял команду RCPT TO"; fclose($smtp_conn); exit;}
    55.  
    56. fputs($smtp_conn,"DATA\r\n");
    57. $code = substr(get_data($smtp_conn),0,3);
    58. if($code != 354) {print "сервер не принял DATA"; fclose($smtp_conn); exit;}
    59.  
    60. fputs($smtp_conn,$header."\r\n".$text."\r\n.\r\n");
    61. $code = substr(get_data($smtp_conn),0,3);
    62. if($code != 250) {print "ошибка отправки письма"; fclose($smtp_conn); exit;}
    63.  
    64. fputs($smtp_conn,"QUIT\r\n");
    65. fclose($smtp_conn);
    66. ?>

    Так как я только начел изучать php очень прошу если будети отвечать на пост разжовываите все =)
    Зарание благодарю всех кто отпишется
     
  2. Бородин Вадим

    Бородин Вадим Активный пользователь

    С нами с:
    30 ноя 2009
    Сообщения:
    8
    Симпатии:
    0
    Чтобы прочитать файл вам потребуется функция file().
    http://ru2.php.net/manual/en/function.file.php

    Она как раз возвращает содержимое файла в виде массива строк. Если у Вас есть файл типа

    То вы получите массив array ( на $addr и молитесь, чтобы яндекс не подумал, что вы спамите)
    }


    $filename - это путь к файлу с адресами. Его нужно положить на сервер.



    [/quote]