PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 1
Deno Отправлено: 31 Мая, 2013 - 15:21:32 • Тема: Отправка писем через SMTP с авторизацией • Форум: Обсуждение статей

Ответов: 13
Просмотров: 9522
Взял исходник http://www.php.su/articles/?cat=email&page=007:

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


Подставил все данные, авторизацию прошёл успешно но выдаёт "ошибка отправки письма". В чём может быть проблема?

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB