簡體   English   中英

CDO.Message .Send導致腳本執行超時

[英]CDO.Message .Send causes script execution timeout

我有以下代碼:

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”。 但為什么? 有任何想法嗎?

問候

代碼沒有任何問題(盡管CdoReferenceTypeName看起來有點可疑,但這可能只是變量命名不佳)。 可能是SMTP服務器正忙,因此需要一些時間來處理發送。

您可以檢查為IIS管理器中的ASP功能指定的腳本超時值。 默認情況下,它應該為90秒,但出於某種原因,也許將其設置為較低的值。

您可以通過在代碼中指定腳本來增加腳本的時間。

Server.ScriptTimeout = 300

這將使您的腳本有5分鍾的時間。 這很可能掩蓋了Web服務器和SMTP服務器之間的某些設置問題,但可能會提高成功率。 另外,您可能會得到相同的結果,但70%的故障會花費更長的時間。

不管是什么原因,我都不認為這是您的代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM