CDO.Message原因。发送脚本执行超时(CDO.Message .Send causes sc

2019-09-17 02:02发布

我有以下代码:

Set myMailanon = CreateObject("CDO.Message")
myMailanon.MimeFormatted = True

Set myConfanon = Server.CreateObject("CDO.Configuration")
Set objBPanon = myMailanon.AddRelatedBodyPart("http://www.foo.bar/img/logo1.jpg", "http://www.foo.bar/img/logo1.jpg", CdoReferenceTypeName)
objBPanon.Fields.Item("urn:schemas:mailheader:Content-ID") = "<http://www.foo.bar/img/logo1.jpg>" 
objBPanon.Fields.Update 
ConfURLanon = "http://schemas.microsoft.com/cdo/configuration/"

with myConfanon        
  .Fields.Item(ConfURLanon & "sendusing") = 2        
  .Fields.Item(ConfURLanon & "smtpserver") = "smtp.foo.bar"        
  .Fields.Item(ConfURLanon & "smtpserverport") = 25     
  .Fields.Item(ConfURLanon & "smtpusessl") = false
  .Fields.Item(ConfURLanon & "smtpauthenticate") = 1
  .Fields.Item(ConfURLanon & "sendusername") = "foo@bar.com"
  .Fields.Item(ConfURLanon & "sendpassword") = "foobarpass"
  .Fields.Update
end with

with myMailanon
  .Subject='Foo!! Bar!!'
  .From='Foo!! Bar!! <foo@bar.com>'      
  .To='foo@bar.com,bar@foo.com'      
  txt="This is foo... bar... text... SPARTAAAAAAAAA"
  .HTMLBody = txt
  Set .Configuration = myConfanon   
  On Error Resume Next 
  .Send      
end with

问题是,这种代码,运行100次,将工作30和70失败随机。 和“不及格”我的意思是,这将导致脚本执行超时。

一行注释行之后,我得到的错误来源于“发送”的结论。 但为什么? 有任何想法吗?

问候

Answer 1:

有没有什么错码(athough CdoReferenceTypeName看起来有点可疑,但可能只是可怜的变量命名)。 这可能仅仅是因为SMTP服务器正忙,因此需要一些时间来处理发送。

您可以为您在IIS管理器中的ASP功能指定的脚本超时值。 默认情况下,它应为90秒,但可能是它被设置为某种原因低值。

您可以通过在你的代码中指定它增加你的脚本具有的时间量。

Server.ScriptTimeout = 300

这将使你的脚本有5分钟。 这很可能掩盖了你的Web服务器和SMTP服务器之间的一些设置问题,但它可能会增加成功率。 OTH你可能会得到同样的结果,但70级%的故障需要较长时间才能出现。

无论是什么原因,我不认为它的代码。



文章来源: CDO.Message .Send causes script execution timeout