Vb6 消息-到多个连接

Vb6 消息-到多个连接,vb6,cdo.message,Vb6,Cdo.message,我正在使用CDO.Message编写新闻稿应用程序。但是得到一个错误,我们有很多连接。似乎它们有10个同时连接的限制 那么,有没有一种方法可以在一个连接上发送多条消息,或者更快地断开连接? 有一个cdo/configuration/smtpconnectiontimeout参数,但我认为更多的是关于发送方将尝试多长时间 (如果发送失败,几分钟后将再次成功,这可能意味着连接已断开) (我们使用CDO的部分原因是我们从Web服务器中提取HTML消息体) 编辑: Public Sub ipSendMa

我正在使用CDO.Message编写新闻稿应用程序。但是得到一个错误,我们有很多连接。似乎它们有10个同时连接的限制

那么,有没有一种方法可以在一个连接上发送多条消息,或者更快地断开连接? 有一个cdo/configuration/smtpconnectiontimeout参数,但我认为更多的是关于发送方将尝试多长时间

(如果发送失败,几分钟后将再次成功,这可能意味着连接已断开)

(我们使用CDO的部分原因是我们从Web服务器中提取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

通常,无论发送多少条消息,您都只需要一个连接

也许你没有释放你应该释放的东西

编辑:只是想一想,您要发送到的SMTP服务器,可能出于测试原因,它不会碰巧是XP机箱上的主机

编辑:确定,SMTP服务器正常


服务器提供URL结果的平台是什么?

通常,无论发送多少消息,您只需要一个连接

也许你没有释放你应该释放的东西

编辑:只是想一想,您要发送到的SMTP服务器,可能出于测试原因,它不会碰巧是XP机箱上的主机

编辑:确定,SMTP服务器正常

服务器提供URL结果的平台是什么?

  • 尝试使用SMTP而不是CDO System.Web.Mail.SmtpMail
  • 您可以实现由后台线程处理的队列。后台线程一次只发送一条消息
  • 您可以将电子邮件存储在数据库表中,该表由计划任务或存储过程处理。它们可以再次一次发送一封邮件,如果出现问题,还可以重试
      • 尝试使用SMTP而不是CDO System.Web.Mail.SmtpMail
      • 您可以实现由后台线程处理的队列。后台线程一次只发送一条消息
      • 您可以将电子邮件存储在数据库表中,该表由计划任务或存储过程处理。它们可以再次一次发送一封邮件,如果出现问题,还可以重试

      我知道CDO有时会很古怪,所以我可能会提出以下建议:

      排队可能最适合你。之后,我会考虑建立一个本地SMTP服务器,而不需要使用SimthOST来对您的出站消息排队的入站连接限制。(这实际上可以很容易地写出来,“S”代表“Simple”,实际上是。)

      如果其他一切都失败了。。。您可以随时推出自己的邮件程序组件,实现RFC2821和2822(或任何最新和最好的用于SMTP和邮件格式的RFCs)


      编辑:如果您发送的新闻稿对于所有收件人都是相同的,您可以将其发送给虚拟收件人(即。newsletter@yourdomain.com)并以密件传给收件人列表(或收件人列表的子集)。只是要小心不要被标记为未经请求的商业电子邮件。让您的提供商知道您正在做什么。他们必须处理投诉,而你是买单的人。让他们知道投诉大多是毫无根据的(而且很少有)将有助于缓解他们天生的风险厌恶情绪。

      我知道CDO有时会很古怪,所以我可能会提出以下建议:

      排队可能最适合你。之后,我会考虑建立一个本地SMTP服务器,而不需要使用SimthOST来对您的出站消息排队的入站连接限制。(这实际上可以很容易地写出来,“S”代表“Simple”,实际上是。)

      如果其他一切都失败了。。。您可以随时推出自己的邮件程序组件,实现RFC2821和2822(或任何最新和最好的用于SMTP和邮件格式的RFCs)


      编辑:如果您发送的新闻稿对于所有收件人都是相同的,您可以将其发送给虚拟收件人(即。newsletter@yourdomain.com)并以密件传给收件人列表(或收件人列表的子集)。只是要小心不要被标记为未经请求的商业电子邮件。让您的提供商知道您正在做什么。他们必须处理投诉,而你是买单的人。让他们知道投诉大多是毫无根据的(而且很少),这将有助于缓解他们天生的风险厌恶情绪。

      至少也有助于告诉我们您是用哪种语言写的。Public Sub-ipSendMail(ByVal-toEmail作为字符串,ByVal-frommemail作为字符串,ByVal-subject作为字符串,ByVal-url作为字符串)Dim iMsg As Object=CreateObject(“CDO.Message”)iMsg.From=fromeail iMsg.To=toEmail iMsg.Subject=Subject iMsg.CreateMHTMLBody(url)iMsg.Configuration.Fields.Item(“)=2 iMsg.Configuration.Fields.Item(“)=”relay.www.net“iMsg.Configuration.Fields.Item(“)_=25 iMsg.Configuration.Fields.Item(“)=0 iMsg.Configuration.Fields.Update()iMsg.Send()@Olav:In,这样你就可以并且应该用类似这样的附加信息编辑问题。至少告诉我们你是用哪种语言写的也是很有帮助的。公共子ipSendMail(ByVal toEmail为字符串,ByVal fromEmail为字符串,ByVal subject为字符串,ByVal url为字符串)Dim iMsg为Object=CreateObject(“CDO.Message”)iMsg.From=fromEmail iMsg.To=toEmail iMsg.subject=subject iMsg.CreateMHTMLBody(url)iMsg.Configuration.Fields.Item quo=2 iMsg.Configuration.Fields.Item(“)=”relay.ww。