2014-12-20 71 views
-1

我有一個Delphi 7應用程序,我寫了,我已經分發給一個生活在遙遠的地方的合作伙伴。該應用程序使用IndyDirect IdSMTP組件將郵件發送到我擁有的郵件服務器。郵件服務器本身沒有問題。該應用程序工作正常,直到我的朋友移動我的朋友最終在他的ISP阻止端口25的世界的一部分。這阻止我的Delphi應用程序發送電子郵件到我的郵件服務器。繞過端口25塊的SMTP

ISP表示他們允許端口587替代端口25.我的問題是,這是一個簡單的問題,將IdSMTP組件的PORT屬性從25更改爲587,然後重新編譯源代碼並給出我的朋友更新.exe?有誰知道郵件服務器是否需要以任何方式重新配置?

謝謝。

回答

3

是的,郵件服務器需要重新配置。現在它正在監聽25號港口;您需要將其配置爲在587上進行監聽。對於大多數現成的郵件服務器來說,這應該相當簡單。另外,我建議把SMTP端口放到你從Delphi代碼中讀取的配置文件中;那麼如果端口再次發生變化,你所要做的就是更新配置文件,而不是重新編譯並重新發送給你的朋友。你甚至可以讓你的朋友做到這一點 - 「只需打開smtp.config並將'587'更改爲'xyz',然後重新啓動程序。」

+0

我同意布萊恩,但我會做一個小小的改變。首先,我會添加客戶端的能力,以便能夠使用多個端口(25,587等)連接到SMTP服務器。然而,這意味着你改變你的客戶端軟件的方式是,如果它無法通過使用一個端口號連接到SMTP服務器,它將嘗試其他端口號。當它試圖成功連接到SMTP服務器時,您將存儲該端口,以便下次您嘗試使用該服務器時(嘗試始終查找未阻止的端口時應避免可能的減速)。 – SilverWarior

+0

現在您的服務器將不得不一直在所有這些可用端口上進行監聽。關於這個解決方案的最好的事情是,甚至當你的用戶移動到另一個地方時,甚至不需要任何手動配置。 – SilverWarior

+0

@SilverWarior這是個好主意。你可以獲得更好的靈活性和容錯能力。 – Brian

相關問題