通过SMTP服务和CDO发送电子邮件时,为什么电子邮件会卡在提取文件夹中?

时间:2015-03-03 00:21:19

标签: asp-classic smtp cdo.message iis-8.5

我使用IIS8.5编写Classic Asp编程,因此对于发送电子邮件,我使用带有CDO组件的SMTP服务(不是SMTP服务器)。我想使用提货目录选项发送电子邮件:

.Item("http://schemas.microsoft.com/cdo/configuration/sendusing")      = 1 

所以我的代码是:

Set objConfig = Server.CreateObject("CDO.Configuration")
        Set Fields = objConfig.Fields

        With Fields
         .Item("http://schemas.microsoft.com/cdo/configuration/sendusing")      = 1 
         .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver")     = "smtp-relay.gmail.com"
         .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 
         .Item("http://schemas.microsoft.com/cdo/configuration/sendusername")   = "xxx@gmail.com"
         .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword")   = "The-pwd-123"
         .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl")     = true
         .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate")   = 1
         .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverpickupdirectory")  ="C:\inetpub\correos\"

         .Update
        End With

        Set objMessage = Server.CreateObject("CDO.Message")
        Set objMessage.Configuration = objConfig

        With objMessage
         .BodyPart.Charset = "unicode-1-1-utf-8"
         .To       = "YYY <yyy@gmail.com>"
         .From     = "XXX <xxx@gmail.com>"
         .Subject  = "This is a subject"
         .TextBody = "This is the body of the message"
         .Send
        End With

你可能知道IIS8.5没有SMTP服务器,所以没有拾取目录的文件夹(或者我还没找到它),你必须创建,我遇到的问题是电子邮件被困在我为此目的创建的文件夹中。

https://support.google.com/a/answer/176600?hl=es

1 个答案:

答案 0 :(得分:1)

当您使用cdoSendUsingPickup选项时,您只需将电子邮件消息写入一个文件,该文件将排队等待您的代码异步传递。是的,这要快得多,因为您的代码不必等待SMTP服务器接收消息。因此,使用此选项时,您无需指定目标SMTP服务器,端口,用户名,密码等。

希望您现在问自己,如果我没有指定转发SMTP服务器,服务器如何知道将消息发送到哪里。那么,那是因为您只需要配置Microsoft SMTP服务,让它知道要将消息传递给哪个服务器。网上有很多文章可以配置它,所以你不应该找到它。