我在写一个使用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