我正在使用CDO.Message编写新闻稿应用程序。但得到一个错误,我们有许多连接。似乎他们有10个同时连接的限制。
那么,有没有办法在一个连接上发送多条消息,或者更快地断开连接? 有一个cdo / configuration / smtpconnectiontimeout参数,但我认为更多的是发件人将尝试多长时间。
(如果我们发送,蚂蚁失败,它将在几分钟后再次成功,可能意味着连接已断开连接。)
(我们正在使用CDO,部分原因是我们从网络服务器中提取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
答案 0 :(得分:1)
答案 1 :(得分:0)
通常,无论您发送的邮件数量多少,您都只需要一个连接。
也许你没有发布你应该做的事情。
编辑:只是想一想,你要发送的SMTP服务器,它可能不会出现在XP机箱上,也许是出于测试原因?
修改:确定您的SMTP服务器正常。
提供URL结果的服务器是什么平台?
答案 2 :(得分:0)
我知道CDO有时会很古怪,所以这些是我可能提出的建议:
队列可能对您最有效。之后,我会考虑设置一个没有入站连接限制的本地SMTP服务器,该限制使用智能主机来排队出站邮件。 (这实际上可以很容易地编写。“S”用于“简单”,实际上是。)
如果所有其他方法都失败了......您可以随时推出自己的邮件程序组件,实现RFC 2821和2822(或者最新和最好的RFC用于SMTP和邮件格式)
编辑:如果您发送的简报对所有收件人都是相同的,您可以将其发送给虚拟收件人(即newsletter@yourdomain.com)并将其发送到收件人列表(或收件人列表的子集) 。请注意不要被标记为未经请求的商业电子邮件。让您的提供商知道您在做什么。他们必须处理投诉,而你是支付账单的人。让他们知道投诉大多是没有根据的(而且很少和很少)将有助于缓和他们的自然风险规避。