如何从Windows 2008 Server上的ASP应用程序发送电子邮件

时间:2009-08-05 17:31:52

标签: asp-classic smtp windows-server-2008

我的ASP,经典ASP应用程序在Windows 2008 Server上给我一个服务器错误。它在Windows 2003服务器上运行正常。该错误是500内部服务器错误。 CDO不能在Windows 2008上运行吗?

修改 错误是:传输无法连接到服务器。

这是我的邮件功能:

function SendMail(mailFrom, mailTo, mailSubject, mailBody, bHtml)
Const cdoSendUsingMethod        = _
"http://schemas.microsoft.com/cdo/configuration/sendusing"
Const cdoSendUsingPort          = 2
Const cdoSMTPServer             = _
"http://schemas.microsoft.com/cdo/configuration/smtpserver"
Const cdoSMTPServerPort         = _
"http://schemas.microsoft.com/cdo/configuration/smtpserverport"
Const cdoSMTPConnectionTimeout  = _
"http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout"
Const cdoSMTPAuthenticate       = _
"http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"
Const cdoBasic                  = 1
Const cdoSendUserName           = _
"http://schemas.microsoft.com/cdo/configuration/sendusername"
Const cdoSendPassword           = _
"http://schemas.microsoft.com/cdo/configuration/sendpassword"
Const smtpServer = "localhost"

Dim objConfig  ' As CDO.Configuration
Dim objMessage ' As CDO.Message
Dim Fields     ' As ADODB.Fields

' Get a handle on the config object and it's fields
Set objConfig = Server.CreateObject("CDO.Configuration")
Set Fields = objConfig.Fields

' Set config fields we care about
With Fields
.Item(cdoSendUsingMethod)       = cdoSendUsingPort
.Item(cdoSMTPServer)            = smtpServer
.Item(cdoSMTPServerPort)        = 25
.Item(cdoSMTPConnectionTimeout) = 10
.Item(cdoSMTPAuthenticate)      = cdoBasic
.Item(cdoSendUserName)          = "username"
.Item(cdoSendPassword)          = "password"

.Update
End With

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

Set objMessage.Configuration = objConfig

With objMessage
.To       = mailTo
.From     = mailFrom
.Subject  = mailSubject
if bHtml then
.HtmlBody = mailBody
else    
.TextBody = mailBody
end if
.Send
End With

Set Fields = Nothing
Set objMessage = Nothing
Set objConfig = Nothing

end function

1 个答案:

答案 0 :(得分:5)

Windows 2008中默认情况下未安装CDO / MAPI库:

你可以download them from Microsoft

参考from this blogpost

  

如果你想写客户端   应用程序在计算机上运行   使用MAPI或CDO(例如,web   服务器),你不想安装   (或无法安装)要么是Outlook   客户端或Exchange管理   工具,然后你需要安装   MAPI / CDO库。