|
|
|
| Хочу наладить отправку почты с Денвера. Посмотрел в сети - да, это возможно. Только надо убрать в Денвере заглушку и знать пароль доступа к почтовому узлу провайдера (обычно, Яндекса или Майл.ру).
Но такой вариант меня не устраивает, ибо у меня 2917 подписчиков и провайдер может заблокировать письма одинакового содержания.
А как устроены декстопные почтовые программы рассылки писем? Они ведь не требуют никаких почтовых узлов и прямо с компа рассылают почту по списку. | |
|
|
|
|
|
|
|
для: Владимир55
(29.09.2014 в 11:06)
| | Насколько я понимаю, необходим локальный смтп-сервер. | |
|
|
|
|
|
|
|
|
для: Владимир55
(29.09.2014 в 11:06)
| | Если они рассылают почту без почтового аккаунта - внутри такой программы реализован SMTP-сервер, если по аккаунту, может рассылать через него (аккаунт - это запись на удаленном SMTP-сервере). | |
|
|
|
|
|
|
|
для: cheops
(30.09.2014 в 21:16)
| | внутри такой программы реализован SMTP-сервер
Я просмотрел несколько программ рассылки почты и обнаружил такую закономерность: русскоязычные российские разработки используют удаленный SMTP-сервер (обычно провайдера или Гугла), а западные имеют внутренний сервер.
С чем это может быть связано?
SMTP-сервер исключительно сложен для реализации и обычным программерам написать его не под силу? Или там задействованы какие-то лицензии? Или что?
Ведь должна же быть какая-то причина! | |
|
|
|
|
|
|
|
для: Владимир55
(30.10.2014 в 16:01)
| | SMTP-сервер исключительно сложен для реализации и обычным программерам написать его не под силу?
Ничего сложного - справится любой более-менее опытный программист. В Delphi, например, такой сервер нетрудно написать за полдня при условии использования компонентов Indy | |
|
|
|
|
|
|
|
для: Commander
(30.10.2014 в 19:50)
| | Ничего сложного - справится любой более-менее опытный программист.
Так в чем же дело?
Почему существуют обширные категории программ для поиска открытых релеев?
Почему существуют платные почтовые серверы, выполняющие, по сути, всего лишь функцию SMTP-сервера? | |
|
|
|
|
|
|
|
для: Владимир55
(31.10.2014 в 09:20)
| | Этого я не знаю. Я лично предпочел бы написать свой. Конечно, могут быть какие-то тонкости, которых я не знаю, но технически свой СМТП-сервер никаких проблем не представляет. | |
|
|
|
|
|
|
|
для: Commander
(31.10.2014 в 12:50)
| | технически свой СМТП-сервер никаких проблем не представляет
Он может быть рализован на РНР? | |
|
|
|
|
|
|
|
для: Владимир55
(31.10.2014 в 13:06)
| | Похоже, что фишка в том, что почта с самописного сервера не будет никем приниматься по той простой причине, что у нее нет обратной зоны. То есть, фильтры направят все письма в спам, поэтому это и не практикуется. | |
|
|
|
|
|
|
|
для: Владимир55
(29.09.2014 в 11:06)
| | Доброго времени суток.
Если честно не дочитал все посты, но ниже приведу скрипт, при помощи которого письма с denwer без проблем отправляются на внешнюю почту. Правда это рабочий, но сырой вариант, логирование предусмотрено, но не доделано. Я тут повырезал лишний для вас код, надеюсь не задел ничего жизнено важного :)
.
<?
//smtpMail("e-mail получателя","Тема письма,"Тело сообщения")
function smtpMail($to,$subject,$message)
{
$smtp_conn = fsockopen(SMTP_SERVER, SMTP_PORT,$errno, $errstr, 10) 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 $value) fputs($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 | |
|
|
|
|
|
|
|
для: tvv123456
(03.11.2014 в 20:17)
| | Спасибо, с отправкой почты я, вроде бы, справился.
По отправе вообще много статей, плюс сам Протокол на 30 страницах дает много инфы.
А вот как принимать почту - я даже не пойму, как к этому подступиться. Да и в сети по работе скриптм с РОР3 ничего толкового не нашел. | |
|
|
|
|
|
|
|
для: Владимир55
(03.11.2014 в 21:50)
| | http://book.itep.ru/4/44/pop34414.htm
Да собственно, коль пошла такая пьянка - в той же Википедии вполне человеческое описание. | |
|
|
|
|
|
|
|
для: Trianon
(03.11.2014 в 22:00)
| | PS. Вот в этой теме я как-то приводил пример скрипта, работающего с POP3-сервером | |
|
|
|
|
|
|
|
для: Trianon
(03.11.2014 в 22:45)
| | Большое спасибо!
Хотя ещё не полностью разобрался, но уже есть, за что зацепиться.
Чуть забегая вперед, хотелось бы спросить - возможно ли (в принципе) осуществить такой алгоритм: берем одно пришеднее письмо и скриптом ищем в нем контрольное слово; при нахождении этого слова письмо удаляется с сервера, а при отсутвии письмо с сервера не удаляется.
И больше ничего не надо. | |
|
|
|
|
|
|
|
для: Владимир55
(04.11.2014 в 11:17)
| | В принципе - возможно. | |
|
|
|