Как отправить электронное письмо из приложения ASP на Windows 2008 Server - PullRequest
2 голосов
/ 05 августа 2009

Мой ASP, классическое приложение ASP вызывает серьезную ошибку на Windows 2008 Server. Он отлично работает на сервере Windows 2003. Ошибка 500 внутренняя ошибка сервера. CDO не работает в Windows 2008?

EDIT Ошибка: транспорт не смог подключиться к серверу.

Вот моя почтовая функция:

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 Ответ

5 голосов
/ 05 августа 2009

Похоже, что библиотеки CDO / MAPI не установлены по умолчанию в Windows 2008:

Вы можете скачать их с Microsoft .

Ссылка с этого блога :

Если вы хотите написать клиент приложения для запуска на компьютерах, которые используйте MAPI или CDO (например, веб серверы), и вы не хотите устанавливать (или не может установить) либо Outlook клиент или управление Exchange инструменты, то вам нужно установить Библиотеки MAPI / CDO.

...