我正在使用CDO.Message编写一个时事通讯应用程序。但得到一个错误,我们有很多连接。似乎他们有10个同时连接的限制。
那么,是否有一种方法可以在一个连接上发送多条消息,或者更快地断开连接?有一个cdo/configuration/smtpconnectiontimeout参数,但我认为更多的是关于发送方尝试的时间。
(如果发送,ant失败,几分钟后它将再次成功,可能意味着连接断开)。
(我们使用CDO的部分原因是我们从we服务器上提取HTML消息体)
编辑
Public Sub ipSendMail(ByVal toEmail As String, ByVal fromEmail As String, ByVal subject As String, ByVal url As String)
Dim iMsg As Object
Set iMsg = CreateObject("CDO.Message")
iMsg.From = fromEmail
iMsg.To = toEmail
iMsg.Subject = subject
iMsg.CreateMHTMLBody(url)
iMsg.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
iMsg.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "relay.wwwwwwwwww.net"
iMsg.Configuration.Fields.Item_
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
iMsg.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 0
iMsg.Configuration.Fields.Update()
iMsg.Send()
Set iMsg = Nothing
End Sub发布于 2009-03-12 09:34:44
System.Web.Mail.SmtpMail
发布于 2009-03-12 09:32:11
通常,不管您发送多少条消息,您只需要一个连接。
也许你不是在释放你应该做的事情。
编辑:仅仅是一个想法,您要发送到的SMTP服务器,它不会碰巧是XP机器上的主机,也许是出于测试原因?
编辑:好的,所以您的SMTP服务器很好。
服务器提供URL的结果是什么平台?
发布于 2009-03-20 17:23:56
我知道CDO有时会很古怪,所以我可能会提出以下建议:
排队对你来说可能是最好的。在此之后,我将考虑在没有入站连接限制的情况下设置本地SMTP服务器,该服务器使用最聪明的方式对出站消息进行排队。(这实际上可以写得相当容易。"S“代表”简单“,实际上是这样。)
如果一切都失败了..。您可以始终滚动您自己的实现RFCs 2821和2822的mailer组件(或任何用于SMTP和消息格式的最新和最伟大的RFCs )。
编辑:如果您发送给所有收件人的时事通讯是相同的,您可以将其发送到虚拟收件人(即newsletter@yourdomain.com),并将其发送到收件人列表(或收件人列表的子集)。只是要小心,不要被标记为未经请求的商业电子邮件。让你的提供者知道你在做什么。他们必须处理投诉,而你才是买单的人。让他们知道抱怨大多是没有根据的(而且很少),这将有助于缓解他们天生的避险情绪。
https://stackoverflow.com/questions/637858
复制相似问题