Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: отправка писем через SMTP с авторизацией
 
 автор: tyoma   (01.10.2008 в 17:44)   письмо автору
 
 

Столкнулся с данной проблемой, нашел топик http://softtime.ru/forum/read.php?id_forum=1&id_theme=14091 где эта проблема решается... Но у меня все равно не отправляются письма.
Использую следующий код:
<?php
define
('DEBUG'true); // выводить диалог с SMTP-сервером

function send($fs$data ='')
{
  if(
$data !== 0)
  {
    if(
constant('DEBUG'))
        echo 
'send: '.$data"<br>\r\n";
    
fwrite($fs$data."\r\n");
  }
}
function 
send_rcv($fs$data ='')
{
  
send($fs$data);
  if(
feof($fs))
     return 
false;
  
$r '';
  while((
$n fgets($fs)) !== false)
  {
  if(
constant('DEBUG'))
        echo 
'recv: '.$n"<br>\r\n";
   
$r .= $n;
   if(
$n{3} == ' ')
       break;
  }

  return 
$r;
}

function 
send_mail($server_name$login$passwd,
$from_name$from_addr,
$to_name$to_addr$subject$body )
{
   
$fs fsockopen($server_name465);
    
send_rcv($fs,0);
    
send_rcv($fs,"EHLO $server_name");
    
send_rcv($fs,"AUTH LOGIN");
    
send_rcv($fs,base64_encode($login));
    
send_rcv($fs,base64_encode($passwd));
    
send_rcv($fs,"MAIL FROM: $from_addr");
    
send_rcv($fs,"RCPT TO: $to_addr");
    
send_rcv($fs,"DATA");
    
send($fs,"From: $from_name <$from_addr>");
    
send($fs,"To: $to_name <$to_addr>");
    
send($fs,"Subject: $subject");
    
send($fs,"");
    
send($fs,$body);
    
send_rcv($fs,".");
    
send_rcv($fs,"QUIT");
}

send_mail("smtp.gmail.com""my_mail@gmail.com""MyPassword""Name""my_mail@gmail.com""Other Name""other_email@other-domain.com""test""body!");

?>

При попытке выполнить скрипт он долго "мурыжится" и в итоге выдает следующее:

send: EHLO smtp.gmail.com
send: AUTH LOGIN
send: base64_encode($login)
send: base64_encode($passwd)
send: MAIL FROM: my_mail@gmail.com
send: RCPT TO: other_email@other-domain.com
send: DATA
send: From: Name
send: To: Other Name
send: Subject: test
send:
send: body!
send: .
send: QUIT

но я не получаю никаких писем на other_email@other-domain.com (я пробовал несколько разных адресов)... В чем может быть проблема?

  Ответить  
 
 автор: Trianon   (01.10.2008 в 18:40)   письмо автору
 
   для: tyoma   (01.10.2008 в 17:44)
 

В моем почтовом ящике лежит письмо, отправленное, как я понимаю, Вами по кнопке "письмо автору".
Попытка ответить на него вызывает отлуп системы доставки почты по причине
"Destination e-mail address is unknown or deactivated".

По сути вопроса.
1. Вы применяете скрипт, составленный исключительно в учебно-исследовательских целях.
Ни в какую production-систему его включать не следует.
2. Отклик показывает, что сервер просто не отвечает на попытки соединения. Да и еще бы он отвечал по порту 465.
3. gmail.com, насколько я знаю, не обслуживает подключения клиентов по открытому каналу. Раньше, как минимум, картина была именно такой.

  Ответить  
 
 автор: Tyoma   (01.10.2008 в 18:58)   письмо автору
 
   для: Trianon   (01.10.2008 в 18:40)
 

Не уверен, а вчера спрашивал elenaki :)

1. Спасибо, но другого выхода у меня пока нет :( Нужно быстро сдеелать так, чтобы была возможность отправлять письма через SMTP с авторизацией
2. По 25-му порту он не коннектился и выдавал ошибки, полез в настройки гугла (для почтовых клиентов) - там указано использовать 465-й порт (http://mail.google.com/support/bin/answer.py?answer=75291).
3. Не уверен. Ведь можно же настроить любой почтовый клиент на работу с гуглом. Тогда в чем отличие скрипта от клиента, ведь насколько я понимаю там используются схожие механизмы...

Модет быть тогда стоит попрбовать другой SMTP для тестирования?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования