2014-12-20 1 views
-1

У меня есть приложение Delphi 7, которое я написал, что я распространил его партнеру, живущему в далеком месте. Приложение использует компонент IdSMTP IndyDirect для отправки почты на почтовый сервер, который у меня есть. Сам почтовый сервер не имеет проблем. Приложение отлично работало, пока мой друг не переехал. Мой друг оказался в той части мира, где его интернет-провайдер блокирует порт 25. Это не позволяет моему приложению Delphi отправлять электронную почту на мой почтовый сервер.Работа с портом 25 для SMTP

ISP сказал, что они разрешают порт 587 в качестве альтернативы порту 25. Мой вопрос заключается в том, что это простой вопрос об изменении свойства ПОРТА для компонента IdSMTP с 25 по 587, а затем перекомпиляции исходного кода и предоставления мой друг обновленный .exe? Кто-нибудь знает, нужно ли переписывать почтовый сервер каким-либо образом?

Спасибо.

ответ

3

Да, почтовый сервер необходимо переконфигурировать. Сейчас он прослушивает порт 25; вам нужно настроить его для прослушивания на 587. Это должно быть довольно просто с большинством готовых почтовых серверов.

Как в стороне, я бы предложил поместить SMTP-порт в конфигурационный файл, который вы читаете в коде Delphi; то, если порт изменится снова, все, что вам нужно сделать, это обновить конфигурационный файл, а не перекомпилировать его и повторно отправить его другу. Вы даже можете заставить своего друга сделать это - «Просто откройте smtp.config и измените« 587 »на« xyz », а затем перезапустите программу».

+0

Я согласен с Брайаном, но я бы сделал небольшое изменение. Сначала я бы добавил возможность клиенту подключиться к SMTP-серверу с использованием нескольких портов (25, 587 и т. Д.). Это, однако, означает, что вы меняете клиентское программное обеспечение таким образом, что если он не может подключиться к SMTP-серверу, используя один номер порта, он пытается использовать другие. Когда вам удается подключиться к SMTP-серверу, вы храните этот порт, чтобы в следующий раз вы попытаетесь с ним первым (следует избегать возможных замедлений при попытке всегда находить разблокированный порт). – SilverWarior

+0

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

+0

@SilverWarior Это хорошая идея. Вы получаете большую гибкость и отказоустойчивость. – Brian

Смежные вопросы