Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 12822
  • Last Modified:

Send mail with classic asp on IIS7 (CDO.Message)

I have moved a classic asp (3.0) site from Windows 2003 to Windows 2008 server. Now, the mailforms don't work. I have installed SMTP server on the Windows 2008 server.

After hours of research and testing I have tried "everything". But still no luck. The webserver just give me this Errormessage: "500 - Internal server error. There is a problem with the resource you are looking for, and it cannot be displayed."

In IIS I have changed the ASP Debugging Properties: Send Error To Browser = True. I have also changed "Show friendy Error Messages to False in Internet Explorer.

The mail script I use is attached. Does anyone have a clue why it don't work on my Windows 2008 Server?
Set cdoMail = CreateObject("CDO.Message")
Set cdoConfig = CreateObject("CDO.Configuration")
Set Flds = cdoConfig.Fields

With Flds
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 'cdoSendUsingPort
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "localhost"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
.Update
End With

With cdoMessage
Set .Configuration = cdoConfig
.To = "me@mydomain.com"
.From = "you@yourdomain.com"
.Subject = "test"
.TextBody = "Here is the message"
.Send
End With

Set cdoMessage = Nothing
Set cdoConfig = Nothing
Set Flds = Nothing

Open in new window

0
webressurs
Asked:
webressurs
  • 6
  • 4
  • 3
  • +1
3 Solutions
 
Jini Jose.Net Team LeadCommented:
CDO is for windows 2000. It will not work by default in windows 2003 based system.
kindly check whether it is installed or not
0
 
b0lsc0ttCommented:
Actually CDO, as you are using it, should work.  It was CDONTS that was for Windows 2000 and earlier and is now deprecated.Are you sure SMTP works?  Is it set up on this same machine or another?  Can you test it to make sure that isn't the problem.  The code looks good.The other possibility is it needs authentication or requires some parameter you are leaving out.  If it is working and was set up by another then can they provide you with a sample of working code or details for the connection and use?bol
0
Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

 
b0lsc0ttCommented:
Also, make sure you do not have an "On Error Resume Next" line in your code.  I also suggest you add a block like the following below the .Send line (outside the With block).bol
If Err <> 0 then
	Response.Write "There was an error: " & Err.Description
End if

Open in new window

0
 
webressursAuthor Commented:
Hi!

This is a new server (just installed now), in the Server Management SMTP is displayed as installed (I use the local SMTP server). Is there any way to check if the SMTP really works as it should?

The server is behind an external firewall, should this firewall open port 25?
0
 
webressursAuthor Commented:
b0lsc0tt: When running the On Error Resume Next I get this error message:

There was an error: Object required

Does that give any clue?
0
 
Jini Jose.Net Team LeadCommented:
i think the server is not installed with cdosys
0
 
webressursAuthor Commented:
How do I install cdosys? Isn't that installed by default?
0
 
wolfman007Commented:
Is your new Windows Server 2008 32 bit or 64 bit?

If it 64 bit then you are going to have to do some configuring to get cdosys working.

You will need to create a special App Pool to run your application in as a 32 bit application, rather that as a 64 bit application.

You will then need to download and register cdosys.dll on your Windows Server 2008.

See the following website for some instructions

CDOSYS 64-bit Windows Server 2008 tutorial
http://www.fordwebs.com/cdosys.cfm
0
 
Jini Jose.Net Team LeadCommented:
did u checked the two links that i posted earlier ?
0
 
webressursAuthor Commented:
I have successfully registered cdosys.dll using regedt32. After further research I have also changes my code, please see attached.

The good thing is that I don't get any errormessage longer, the bad thing is that I don't recieve any email! I guess the email is not sent...

Any clue?
        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" 
         
        Dim objConfig  ' As CDO.Configuration 
        Dim objMessage ' As CDO.Message 
        Dim Fields     ' As ADODB.Fields 

        Set objConfig = Server.CreateObject("CDO.Configuration") 
        Set Fields = objConfig.Fields 
         
        ' Set config fields we care about 
        With Fields 
                .Item(cdoSendUsingMethod)       = cdoSendUsingPort 
                .Item(cdoSMTPServer)            = "localhost" 
                .Item(cdoSMTPServerPort)        = 25 
                .Item(cdoSMTPConnectionTimeout) = 10 
                .Update 
        End With 
         
        Set objMessage = Server.CreateObject("CDO.Message") 
        Set objMessage.Configuration = objConfig 
         
        With objMessage 
                .To       = "my@mail.com"
                .From     = "my@mail.com" 
                .Subject  = "test"
                .HTMLBody = "content" 
                .Send 
        End With 
         
        Set Fields = Nothing 
        Set objMessage = Nothing 
        Set objConfig = Nothing 

Open in new window

0
 
b0lsc0ttCommented:
Try the steps at the URL below to test if SMTP is working.  You don't need to try them all but just pick which will work best.  Let us know the results.  Thanks for the update but we should confirm smtp works before trying the next stuff.

http://www.petri.co.il/test_smtp_service.htm

bol
0
 
webressursAuthor Commented:
Hello!
I got it to work nok. Actually it works with this simple code:

set objMail = server.CreateObject("CDO.Message")
objMail.from = "me@mail.com"
objMail.to = "you@mail.com"
objMail.subject = "subject"
objMail.HTMLBody = "Text here"
objMail.send
set objMail = nothing

I reinstalled the cdosys.dll, then it worked:
Uninstall: regsvr32 -u c:\windows\system32\cdosys.dll
Install: regsvr32 c:\windows\system32\cdosys.dll
0
 
webressursAuthor Commented:
Thanks for all help :)
0

Featured Post

Making Bulk Changes to Active Directory

Watch this video to see how easy it is to make mass changes to Active Directory from an external text file without using complicated scripts.

  • 6
  • 4
  • 3
  • +1
Tackle projects and never again get stuck behind a technical roadblock.
Join Now