我有以下代码:
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次。随机的。我所说的“失败”是指它会导致脚本执行超时。
在逐行注释之后,我得出了错误来自".Send“的结论。但是为什么呢?有什么想法吗?
问候
发布于 2012-05-08 03:58:55
代码没有任何问题(虽然CdoReferenceTypeName看起来有点可疑,但这可能只是糟糕的变量命名)。这可能只是因为SMTP服务器很忙,因此需要一段时间来处理发送。
您可以在IIS管理器中检查为ASP功能指定的脚本超时值。默认情况下,它应该是90秒,但可能由于某种原因,它被设置为一个较低的值。
您可以通过在代码中指定时间来增加脚本的时间。
Server.ScriptTimeout = 300这会给你的脚本5分钟的时间。这可能掩盖了您的web服务器和SMTP服务器之间的一些设置问题,但它可能会提高成功率。或者,您可能会得到相同的结果,但70%的失败需要更长的时间才能发生。
不管是什么原因,我不认为这是你的代码。
https://stackoverflow.com/questions/10482053
复制相似问题