• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1073
  • Last Modified:

Using MailEnable with ASP...Getting Server.CreateObject Failed error

Here's the bullets

- Using MailEnable on Windows 2003 machine
- Getting an error when using ASP to send mail ... Server.CreateObject("MEMail.Message") failed
- Been looking around the Net (for hours now) for solutions without success

From what I've read, it is probably permissions, but I cant figure out what exactly to do on that.  Not too familiar with server-side stuff beyond ASP.  Could someone give me some straightforward steps for checking to see if this is in fact a permissions problem, or another solution if you dont think its related to permissions?   My brain is fried over this at the moment.  Thanks...
'MailEnable version of the SendEmail function
    Const MAIL_SERVER = "www.myserver.com"
    'Create a message object
    Dim objMsg
    Set objMsg = Server.CreateObject("MEMail.Message")
    'Populate the message
    With objMsg
        .ContentType = "text/html;"
        'Sender Info
        .MailFrom = "myemail@comcast.net"
        '.MailFromDisplayName = strReturnEmail
        .MailTo "myemail@comcast.net"
        .Subject 	= sEmailSubject
        .MessageBody  = sEmailBodyClamp
        .Server = MAIL_SERVER
        'Pass back any errors
        SendEmailMailEnable = .ErrorString
    End With
	Set objMail = Nothing

Open in new window

  • 4
  • 3
1 Solution
is there an error number associated with this or just failed?
soBCAuthor Commented:
Sorry, here's the complete error

Server object error 'ASP 0177 : 800401f3'

Server.CreateObject Failed

/fan/sql/send_email_test.asp, line 19

From: http://forums.digitalpoint.com/showthread.php?t=21069

Q: AspMail never works. I get Server object error 'ASP 0177:800401f3'. What is the problem?

A: This error means "Invalid class string" -- in other words the call to CreateObject failed because the name object cannot be found by the OLE sub-system. Causes include:

1. You really didn't run regsvr32 on the server after all.
2. You ran regsvr32 but it reported an error.
3. Someone modified security on part of the registry that's preventing the OLE subsystem from reading all or part of the HKEY_CLASSES_ROOT tree.
4. The name of the object you are trying to create was mispelled or is incorrect.
5. Determine if it's a permissions problem

Add the anonymous user (used by IIS) to the Administrators group. The test page then worked, proving it was a permissions problem. Do not forget to remove the anonymous IIS user from the Admin group!

6. Determine if it is a file permissions problem:

After removing the Anonymous user from the Admin group, add failure auditing to the file (smtpsvg.dll), which will determine if the file was ever accessed (by the lack of the failure event). If it isn't, this makes it clear that the failure is prior to file access but go ahead and check file/directory permissions to make sure the anonymous IIS user can access the file.

7. Check registry permissions

Using Regedt32, do find on smtpsvg.dll. Check the permissions for the key (and sub keys), and make sure that the anonymous user has read rights. Do a find on the class-id, which contains the location value, and version, and check those permissions as well.
Get expert help—faster!

Need expert help—fast? Use the Help Bell for personalized assistance getting answers to your important questions.

soBCAuthor Commented:
I've seen this before.  Here's where I got stuck.

1.  Im not sure what Im supposed to run regsvr32 on.  Im trying to use MailEnable.
2.  See #1
3.  Unfortunately, I have no idea how to sleuth this option
4.  I can eliminate this one
5.  I added the Anonymous account, but my test page still didnt work.
6.  Not sure how to add failure auditing to a file

Have you looked in the MailEnable documentation?
soBCAuthor Commented:
Yeah, I've been all through it.  I actually found the solution off a link from the list you posted.  Something to do with meta data.  It works, but Im still not sure why...
NAME="CDO for Windows 2000 Library" 
	Set cdoConfig = CreateObject("CDO.Configuration") 
	With cdoConfig.Fields 
	.Item(cdoSendUsingMethod) = cdoSendUsingPort 
	.Item(cdoSMTPServer) = "mail.myserver.com" 
	End With 
	Set cdoMessage = CreateObject("CDO.Message") 
	With cdoMessage 
	Set .Configuration = cdoConfig 
	.From = "me" 
	.To = "me" 
	.Subject = "Test MailEnable message" 
	.TextBody = "Stick this in your mail message and enable it" 
	End With 
	Set cdoMessage = Nothing 
	Set cdoConfig = Nothing 

Open in new window

soBCAuthor Commented:
Actually, I take it back.  That's not MailEnable, but CDO wasn't working either.  I figured I'd try both until I got one of them to work.  Still not sure why MailEnable doesn't work though...
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Hire Technology Freelancers with Gigs

Work with freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely, and get projects done right.

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