我在寫一個使用Indy發送電子郵件的應用程序。是否可以調用TidSMTP.Connect一次,然後從線程調用TidSMTP.Send?
每條消息都由一個線程發送。
目前我在TidSMTP
裏面連接線程,所以爲了發送10封郵件,我需要10個線程,我連接了10次。
單線程TidSMTP
(線程外)是否安全(哪些是缺點?),請調用Connect
一次,然後在線程內調用TidSMTP.Send
?
請問TidSMTP
正確處理事情?
注意:這個想法是爲了避免每次都連接(如果可能的話),萬一有很多電子郵件被髮送,這可能是一個優勢。 (是否有必要爲此擔心,或者在每個線程中調用Connect
確實沒問題?)。
是的,這是一個很好的建議。我的想法是從簡單的開始,一次只有一個線程,在這種情況下,您的suggestino是100%的邏輯。但是接下來我想要有3條並行線程(一條不發送郵件,沒有附件,另一條發送小附件,另一條發送更大的附件)。無論如何,你的建議,我可以簡單地創建1每個線程smtp。謝謝。 – LaBracca 2010-11-17 13:20:17
歡迎你,如果你願意,你可以有3個線程,甚至20個,如果你想發送電子郵件給X nr,每個線程有不同的範圍,但不是50,100,200等線程。的人然後看看密件抄送(密件抄送),以便他們不會看到收到電子郵件的其他電子郵件地址。 – ComputerSaysNo 2010-11-17 14:07:55
@ user193655:爲什麼不使用TQueue,我認爲它更準確。您可能每個線程都有一個SMTP組件和一個Queue組件......建議TList而不是TQueue是我不贊成@Dorin回答的唯一原因。 – jachguate 2010-11-17 22:48:31