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

Форум PHP

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

 

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

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

тема: Можно отправить почту не пользуясь mail?
 
 автор: dima71   (15.07.2004 в 23:57)
 
 

Интересно. Или другого способа нет и нужно использовать только эту функцию?

   
 
 автор: Кузнецов М.В.   (16.07.2004 в 01:37)   письмо автору
 
   для: dima71   (15.07.2004 в 23:57)
 

Можно обойтись и без нее, но для этого придется самим написать функцию mail :)
Т.е. мы сначала должны подсоединиться к почтовому ретранслятору по 25 порту (точно также, как подсоединяемся к любому сокету), сказать ему все, что хотим на его языке (т.е. послать те заголовки, с которыми работает удаленный сервер SMTP).
Выглядит это примерно так.
<?php
function send_mail($server$to$from$subject=""$headers=""

    
// формируем заголовок
    
$headers="To: $to\nFrom: $from\nSubject: $subject\nX-Mailer:
   MyMail!\n
$headers";
    
$fp fsockopen($server25, &$errno, &$errstr30); // соединяемся    с нужным сервером по 25 порту
    
if (!$fp)
    {
        
// если соединение не удалось - возвращаем код ошибки
        
echo("Connection failed: $errno$errstr");
    }
    
// приветствуем сервер
    
fputs($fp,"HELO $server\n");
    
// посылаем поле FROM
    
fputs($fp,"MAIL FROM: $from\n");
    
// посылаем поле TO
    
fputs($fp,"RCPT TO: $to\n");
    
// посылаем поле DATA
    
fputs($fp,"DATA\n");
    
fputs($fp,$headers);
    
// дисконнектимся
    
fputs($fp,"\n.\nQUIT\n");
    unset(
$buff);
    while(!
feof($fp)){
      
$buff.=fgets($fp,1024);
    }
    
fclose($fp);
  } 
}
?>

Для отправки письма вызываем написанную нами функцию:
<?php
send_mail
('mx9.yandex.ru'// нужный сервер, к примеру, один из ретрансляторов яндекса
          
'ttt@yandex.ru'// кому 
          
'ttt@softtime.ru'// от кого
          
'Hello!'); // тема
?>

   
 
 автор: dima71   (17.07.2004 в 13:57)
 
   для: Кузнецов М.В.   (16.07.2004 в 01:37)
 

спасибо! Получилось.

   
 
 автор: ASK_EL   (18.11.2005 в 10:40)   письмо автору
 
   для: Кузнецов М.В.   (16.07.2004 в 01:37)
 

Письмо то мы отправим!
А как отправить как-бы прикрипленный файл???

   
 
 автор: cheops   (18.11.2005 в 13:33)   письмо автору
 
   для: ASK_EL   (18.11.2005 в 10:40)
 

Порядок работы с вложениями можно посмотреть в примере Отправка письма с вложением - там вы найдёте нужные почтовые заголовки.

   
 
 автор: ASK_EL   (18.11.2005 в 13:47)   письмо автору
 
   для: cheops   (18.11.2005 в 13:33)
 

Спасибо нашел!!!

   
 
 автор: Денис   (26.12.2005 в 02:47)   письмо автору
 
   для: Кузнецов М.В.   (16.07.2004 в 01:37)
 

Скажите, для чего нужно указывать ретранслятор сервера и можно ли отправить письмо без его указания?

   
 
 автор: cheops   (26.12.2005 в 13:34)   письмо автору
 
   для: Денис   (26.12.2005 в 02:47)
 

Ретранслятор, это сервер, который примет вашу почту, когда вы используете функцию mail() - она ищет такой сервер на локальной машине, если вы самостоятельно отправляете почту вам потребуется указать ретранслятор.

   
 
 автор: elenaki   (16.07.2004 в 10:30)
 
   для: dima71   (15.07.2004 в 23:57)
 

можно отправить почту и средствами Java-script. только для этого на компьютере
должен быть настроен протокол SMTP. т.к. здесь форум все-таки про PHP, не буду
приводить пример.

   
 
 автор: dima71   (17.07.2004 в 14:01)
 
   для: elenaki   (16.07.2004 в 10:30)
 

Так а для того чтобы через PHP почту на локалке запускать тоже SMTP нужен. Другое дело, что если я пользуюсь PHP, я могу это и на удаленном сервере сделать через его SMTP, а с javascript это не пройдет.

   
Rambler's Top100
вверх

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