How can I send email with ASP?

Posted on 2001-06-08
Last Modified: 2012-08-13
How can I send email with ASP?
The code listed below gives me an error like this:

Error Type:
Server object, ASP 0177 (0x800401F3)
Invalid ProgID. For additional information specific to this message please visit the Microsoft Online Support site located at:

I have installed a Virtual SMTP server on my IIS server, I have access to a real linux SMTP server, which is not on my server machine, please help me guys?!
Set Mail = Server.CreateObject("Persits.MailSender")
Mail.Host = "" ' Specify a valid SMTP server
Mail.From = "" ' Specify sender's address
Mail.FromName = "VeryHotCakes Sales" ' Specify sender's name

Mail.AddAddress "", "Andrew Johnson, Jr."
Mail.AddAddress "" ' Name is optional
Mail.AddReplyTo ""
Mail.AddAttachment "c:\images\cakes.gif"

Mail.Subject = "Thanks for ordering our hot cakes!"
Mail.Body = "Dear Sir:" & Chr(13) & Chr(10) & _
    "Thank you for your business."

On Error Resume Next
If Err <> 0 Then
  Response.Write "Error encountered: " & Err.Description
End If
Question by:lentzi
LVL 15

Expert Comment

ID: 6167995

Its pretty straight forward... do the following:


set oMail = server.createobject("CDONTS.NewMail")

oMail.from = "" = ""
oMail.subject = "The subject line"
oMail.Body = "The body of the email"



Expert Comment

ID: 6168006
liebrands's solution required that you have an SMTP server setup inside of IIS - this is not a band thing, it's just one alternative.

i prefer to use JMail from Dimac. - it's a free email component that i find easier to use than CDONTS, and more powerful as well.

that's just my opinion. alot of people use CDO and CDONTS - it works great. i just prefer JMail.
LVL 20

Accepted Solution

Silvers5 earned 100 total points
ID: 6168140
Comment out the on error resume next to see the error, basically I guess you should give the iusr read permission over the gif file.. check 


How do I send e-mail from ASP?

There are several components that enable you to do this. You may already have one, if you have an SMTP server installed alongside IIS - it's called CDONTS. Here is the documentation and an article for CDONTS: 
There are also several other components available (if I missed any, let us know)
    Genusa's AspMail 
    Dundas Mailer 
    w3 Jmail 
    HTMLMailer / HTMLMailerPlus 
    Mabry Mail 
    AB Active X Mailer 

How do I send e-mail with CDONTS?

To send an e-mail with Active Server Pages requires some kind of component. There are many third party components available (see bottom of page), but one of the most readily available is the free Microsoft mail component CDONTS, which ships with the Option Pack for WinNT 4.0.
Now, once you stop trying to comprehend it's name (I know I can't), it is quite a simple mail program to use once you set it up.
CDO works by using the SMTP service in IIS, unless Exchange is installed, then it will just use Exchange's SMTP system. Before continuing, make sure you have your SMTP service properly set up. You can check by using the Microsoft Management Consol (MMC), or you can look to see if CDONTS.DLL is in your system32 directory.
To send e-mail from ASP, all you have to do is define the object and use the ".send" function.
    Set MailObj = Server.CreateObject("CDONTS.NewMail")
    MailObj.Send "", "", "My Subject", "My Text"
Wasn't that easy?
Sending an Attachment
Another very commonly used function of CDO is to send attachments with an e-mail.
    Set MailObject = Server.CreateObject("CDONTS.NewMail")
    MailObject.Subject="Subject Text Here"
    MailObject.Body="Body Text Here"
    MailObject.AttachFile att_file,f_name
Along with CDO, there are many third party components that can also be used for sending e-mail. Many of them have more features than CDO. You might want to have a look at: 
If you get "Permission Denied" errors, see the following KB article: 

LVL 18

Expert Comment

ID: 6169410
If you are running IIS5 on W2K you don't even need an SMTP server, just the SMTP Service...

Expert Comment

ID: 6176109
hi lentzi,

i just want to make sure... have you registered the persits mail component or dll on your web server? this is achieved by running windows' regsvr32 and passing to it as a parameter the absolute pathname of the dll. if yes, try rebooting your server if you also haven't done this.

anyway, your invalid progid error just says that our asp engine could not find the persits.mailsender programmatic id in the registry.

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Connecting to multiple databases to create a Dashboard 5 67
ASP exit 10 26
asp classic find word in string and get its value 7 34
Ajax on ASP 2 36
I recently decide that I needed a way to make my pages scream on the net.   While searching around how I can accomplish this I stumbled across a great article that stated "minimize the server requests." I got to thinking, hey, I use more than one…
I would like to start this tip/trick by saying Thank You, to all who said that this could not be done, as it forced me to make sure that it could be accomplished. :) To start, I want to make sure everyone understands the importance of utilizing p…
Finds all prime numbers in a range requested and places them in a public primes() array. I've demostrated a template size of 30 (2 * 3 * 5) but larger templates can be built such 210  (2 * 3 * 5 * 7) or 2310  (2 * 3 * 5 * 7 * 11). The larger templa…
Exchange organizations may use the Journaling Agent of the Transport Service to archive messages going through Exchange. However, if the Transport Service is integrated with some email content management application (such as an antispam), the admini…

756 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question