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

Разное

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

 

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

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

тема: Как устроена декстопная почтовая программа?
 
 автор: Владимир55   (29.09.2014 в 11:06)   письмо автору
 
 

Хочу наладить отправку почты с Денвера. Посмотрел в сети - да, это возможно. Только надо убрать в Денвере заглушку и знать пароль доступа к почтовому узлу провайдера (обычно, Яндекса или Майл.ру).

Но такой вариант меня не устраивает, ибо у меня 2917 подписчиков и провайдер может заблокировать письма одинакового содержания.

А как устроены декстопные почтовые программы рассылки писем? Они ведь не требуют никаких почтовых узлов и прямо с компа рассылают почту по списку.

  Ответить  
 
 автор: Commander   (30.09.2014 в 07:37)   письмо автору
 
   для: Владимир55   (29.09.2014 в 11:06)
 

Насколько я понимаю, необходим локальный смтп-сервер.

  Ответить  
 
 автор: elenaki   (30.09.2014 в 09:06)   письмо автору
 
   для: Владимир55   (29.09.2014 в 11:06)
 

http://www.toolheap.com/test-mail-server-tool/users-manual.html

  Ответить  
 
 автор: cheops   (30.09.2014 в 21:16)   письмо автору
 
   для: Владимир55   (29.09.2014 в 11:06)
 

Если они рассылают почту без почтового аккаунта - внутри такой программы реализован SMTP-сервер, если по аккаунту, может рассылать через него (аккаунт - это запись на удаленном SMTP-сервере).

  Ответить  
 
 автор: Владимир55   (30.10.2014 в 16:01)   письмо автору
 
   для: cheops   (30.09.2014 в 21:16)
 

внутри такой программы реализован SMTP-сервер

Я просмотрел несколько программ рассылки почты и обнаружил такую закономерность: русскоязычные российские разработки используют удаленный SMTP-сервер (обычно провайдера или Гугла), а западные имеют внутренний сервер.

С чем это может быть связано?

SMTP-сервер исключительно сложен для реализации и обычным программерам написать его не под силу? Или там задействованы какие-то лицензии? Или что?

Ведь должна же быть какая-то причина!

  Ответить  
 
 автор: Commander   (30.10.2014 в 19:50)   письмо автору
 
   для: Владимир55   (30.10.2014 в 16:01)
 

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

Ничего сложного - справится любой более-менее опытный программист. В Delphi, например, такой сервер нетрудно написать за полдня при условии использования компонентов Indy

  Ответить  
 
 автор: Владимир55   (31.10.2014 в 09:20)   письмо автору
 
   для: Commander   (30.10.2014 в 19:50)
 

Ничего сложного - справится любой более-менее опытный программист.

Так в чем же дело?

Почему существуют обширные категории программ для поиска открытых релеев?

Почему существуют платные почтовые серверы, выполняющие, по сути, всего лишь функцию SMTP-сервера?

  Ответить  
 
 автор: Commander   (31.10.2014 в 12:50)   письмо автору
 
   для: Владимир55   (31.10.2014 в 09:20)
 

Этого я не знаю. Я лично предпочел бы написать свой. Конечно, могут быть какие-то тонкости, которых я не знаю, но технически свой СМТП-сервер никаких проблем не представляет.

  Ответить  
 
 автор: Владимир55   (31.10.2014 в 13:06)   письмо автору
 
   для: Commander   (31.10.2014 в 12:50)
 

технически свой СМТП-сервер никаких проблем не представляет

Он может быть рализован на РНР?

  Ответить  
 
 автор: Владимир55   (31.10.2014 в 17:55)   письмо автору
 
   для: Владимир55   (31.10.2014 в 13:06)
 

Похоже, что фишка в том, что почта с самописного сервера не будет никем приниматься по той простой причине, что у нее нет обратной зоны. То есть, фильтры направят все письма в спам, поэтому это и не практикуется.

  Ответить  
 
 автор: tvv123456   (03.11.2014 в 20:17)   письмо автору
 
   для: Владимир55   (29.09.2014 в 11:06)
 

Доброго времени суток.
Если честно не дочитал все посты, но ниже приведу скрипт, при помощи которого письма с denwer без проблем отправляются на внешнюю почту. Правда это рабочий, но сырой вариант, логирование предусмотрено, но не доделано. Я тут повырезал лишний для вас код, надеюсь не задел ничего жизнено важного :)
.

<?
//smtpMail("e-mail получателя","Тема письма,"Тело сообщения") 
 
function smtpMail($to,$subject,$message)
      {     
         
            
            
$smtp_conn fsockopen(SMTP_SERVERSMTP_PORT,$errno$errstr10) or myerror($errno.$errstr,false); //метод myerror либо удалите лишнее либо напишите свой :)
            
fputs($smtp_conn,"EHLO ".SMTP_LOGIN."\r\n");
            
$data "EHLO:".$this->getDataSmtp($smtp_conn);
            
            
fputs($smtp_conn,"AUTH LOGIN\r\n");
            
$data.= "AUTH LOGIN: ".$this->getDataSmtp($smtp_conn);
            
            
fputs($smtp_conn,base64_encode(SMTP_LOGIN)."\r\n");
            
$data.= "LOGIN: ".$this->getDataSmtp($smtp_conn);
            
            
fputs($smtp_conn,base64_encode(SMTP_PASS)."\r\n");
            
$data.= "PASS: ".$this->getDataSmtp($smtp_conn);
            
            
fputs($smtp_conn,"MAIL FROM: ".SMTP_FROM."\r\n");
            
$data.= "MAIL FROM: ".$this->getDataSmtp($smtp_conn);
             if(
is_array($to))
            {
             foreach(
$to as $valuefputs($smtp_conn,"RCPT TO:$value\r\n");
            }
        else 
fputs($smtp_conn,"RCPT TO:$to\r\n");
            
$data.= "RCPT TO: ".$this->getDataSmtp($smtp_conn);
            
            
fputs($smtp_conn,"DATA\r\n");
            
$data.= "DATA: ".$this->getDataSmtp($smtp_conn);
            
            
fputs($smtp_conn,$header."\r\n".$message."\r\n.\r\n");
        
$data.= "HEADER MESSAGE: ".$this->getDataSmtp($smtp_conn);
            
            
fputs($smtp_conn,"QUIT\r\n");
            
$data.= "QUIT: ".$this->getDataSmtp($smtp_conn);
            
$data .= $errno."(".$errstr;
        
/*$fp = fopen('log.txt', 'a');
        $test = fwrite($fp, $data);*/
        
return true
      }


Только нужно установить следующие константы:

<?
/*==============Настройки подключение к SMTP==============*/
define("SMTP_STATUS",true); //true - включить отправку через SMTP
define("SMTP_SERVER","******");//сервер
define("SMTP_PORT",25); //порт обычно 25
define("SMTP_LOGIN","********"); // логин почты в формате login@server.ru
define("SMTP_PASS",******"); //пароль к почте
define("
SMTP_FROM","*******");  //e-mail "от кого"


Принимать почту не сложнее, но нужно будет запариться над дизайном вывода сообщений. Можно почитать тут, как настроить допустим POP3 на яндекс почтеhttp://help.yandex.ru/mail/mail-clients.xml

  Ответить  
 
 автор: Владимир55   (03.11.2014 в 21:50)   письмо автору
 
   для: tvv123456   (03.11.2014 в 20:17)
 

Спасибо, с отправкой почты я, вроде бы, справился.

По отправе вообще много статей, плюс сам Протокол на 30 страницах дает много инфы.

А вот как принимать почту - я даже не пойму, как к этому подступиться. Да и в сети по работе скриптм с РОР3 ничего толкового не нашел.

  Ответить  
 
 автор: Trianon   (03.11.2014 в 22:00)   письмо автору
 
   для: Владимир55   (03.11.2014 в 21:50)
 

http://book.itep.ru/4/44/pop34414.htm

Да собственно, коль пошла такая пьянка - в той же Википедии вполне человеческое описание.

  Ответить  
 
 автор: Trianon   (03.11.2014 в 22:45)   письмо автору
 
   для: Trianon   (03.11.2014 в 22:00)
 

PS. Вот в этой теме я как-то приводил пример скрипта, работающего с POP3-сервером

  Ответить  
 
 автор: Владимир55   (04.11.2014 в 11:17)   письмо автору
 
   для: Trianon   (03.11.2014 в 22:45)
 

Большое спасибо!

Хотя ещё не полностью разобрался, но уже есть, за что зацепиться.

Чуть забегая вперед, хотелось бы спросить - возможно ли (в принципе) осуществить такой алгоритм: берем одно пришеднее письмо и скриптом ищем в нем контрольное слово; при нахождении этого слова письмо удаляется с сервера, а при отсутвии письмо с сервера не удаляется.
И больше ничего не надо.

  Ответить  
 
 автор: Trianon   (04.11.2014 в 16:58)   письмо автору
 
   для: Владимир55   (04.11.2014 в 11:17)
 

В принципе - возможно.

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

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