Está en la página 1de 5

A Beginner's Guide to Sending Email from an ASP Page

In this tutorial, we will learn how to send email from an Active Server Page using CDONTS
(Microsoft Collaboration Data Objects for Windows NT Server). Although there are other
CDONTS objects, we will focus solely on the NewMail object in this tutorial. We will cover most of
the properties and methods of the NewMail object, and will develop, step by step, a complete and
thorough example.

It is assumed that the reader has some familiarity with creating ASP pages using VBScript.
(Note: If you are viewing this tutorial from a downloaded zip file, the links will not work.)

We begin by declaring an object of type NewMail.


<%
Dim MyMail
Set MyMail = Server.CreateObject("CDONTS.NewMail")
%>
We then use the From property of the NewMail object to indicate the sender of the message. The
From property is required, and multiple senders are not permitted. The type of this property is
String.
<%
Dim MyMail
Set MyMail = Server.CreateObject("CDONTS.NewMail")
MyMail.From = "justme@myaddress.com"
%>
Analogously, we use the To property of the NewMail object to identify the recipients of the
message. This property is also of type String. At least one of the To, Cc or Bcc properties (Cc and
Bcc properties discussed subsequently) must be nonempty. Each recipient must be addressed in
full, with multiple recipients separated by semicolons.
<%
Dim MyMail
Set MyMail = Server.CreateObject("CDONTS.NewMail")
MyMail.From = "justme@myaddress.com"
MyMail.To = "friend1@address1.com;friend2@address2.com"
%>
The Cc property (for indicating recipients of copies of the message) and Bcc property (for
indicating recipients of blind copies) work exactly like the To property. Neither of these properties
is required, however, and both are of String type.
<%
Dim MyMail
Set MyMail = Server.CreateObject("CDONTS.NewMail")
MyMail.From = "justme@myaddress.com"
MyMail.To = "friend1@address1.com;friend2@address2.com"
MyMail.Cc = "friend3@address3.com;friend4@address4.com"
MyMail.Bcc = "friend5@address5.com;friend6@address6.com"
%>
It is important to include a subject line in our email messages, so we do that next using the
Subject property, which is of type String. This property is not required, however, and could be set
to an empty string.
<%
Dim MyMail
Set MyMail = Server.CreateObject("CDONTS.NewMail")
MyMail.From = "justme@myaddress.com"
MyMail.To = "friend1@address1.com;friend2@address2.com"
MyMail.Cc = "friend3@address3.com;friend4@address4.com"
MyMail.Bcc = "friend5@address5.com;friend6@address6.com"
MyMail.Subject = "sending email via CDONTS NewMail"
%>
The BodyFormat property sets the text format of the NewMail object. It is of type Long, and has
two possible values: 0, which indicates that the body of the message includes Hypertext Markup
Language (HTML); or 1, which indicates that the body of the message is exclusively plain text.
The default value for the BodyFormat property is 1, so this property does not need to be set for
plain text messages. Our example message will be in plain text, but, for demonstration purposes,
we will explicitly set the BodyFormat property.
<%
Dim MyMail
Set MyMail = Server.CreateObject("CDONTS.NewMail")
MyMail.From = "justme@myaddress.com"
MyMail.To = "friend1@address1.com;friend2@address2.com"
MyMail.Cc = "friend3@address3.com;friend4@address4.com"
MyMail.Bcc = "friend5@address5.com;friend6@address6.com"
MyMail.Subject = "sending email via CDONTS NewMail"
MyMail.BodyFormat = 1
%>
The MailFormat property sets the encoding for the NewMail object. It is of type Long, and has two
possible values: 0, which indicates that the object is to be in MIME (Multipurpose Internet Mail
Extension) format; or 1, which indicates that the object is to be in uninterrupted plain text. This
property is optional, and its default value is 1. This property determines the default value for the
EncodingMethod parameter in the AttachFile method (to be discussed later). Since we will be
including an image attachment (later), we will set the MailFormat property to 0 now.
<%
Dim MyMail
Set MyMail = Server.CreateObject("CDONTS.NewMail")
MyMail.From = "justme@myaddress.com"
MyMail.To = "friend1@address1.com;friend2@address2.com"
MyMail.Cc = "friend3@address3.com;friend4@address4.com"
MyMail.Bcc = "friend5@address5.com;friend6@address6.com"
MyMail.Subject = "sending email via CDONTS NewMail"
MyMail.BodyFormat = 1
MyMail.MailFormat = 0
%>
The Importance property (optional) allows us to set the importance associated with the NewMail
object. Its type is Long, and the possible values are: 0, indicating low importance; 1, indicating
normal importance (default); and 2, indicating high importance. Our message is very important,
so we will set the Importance property accordingly.
<%
Dim MyMail
Set MyMail = Server.CreateObject("CDONTS.NewMail")
MyMail.From = "justme@myaddress.com"
MyMail.To = "friend1@address1.com;friend2@address2.com"
MyMail.Cc = "friend3@address3.com;friend4@address4.com"
MyMail.Bcc = "friend5@address5.com;friend6@address6.com"
MyMail.Subject = "sending email via CDONTS NewMail"
MyMail.BodyFormat = 1
MyMail.MailFormat = 0
MyMail.Importance = 2
%>
To set the text of the NewMail object, we use the Body property, which can consist of plain text
only, or can contain HTML (as described in the discussion of the BodyFormat property). The Body
property is either of type String or Istream object (C/C++/Java only). The Body property is not
required, so it is possible to send a message with no body text at all. In fact, if you really want to
be mysterious, you can send a message with no subject and no body! We, however, have an
important message to send, so we will provide text for the Body property.
<%
Dim MyMail
Set MyMail = Server.CreateObject("CDONTS.NewMail")
MyMail.From = "justme@myaddress.com"
MyMail.To = "friend1@address1.com;friend2@address2.com"
MyMail.Cc = "friend3@address3.com;friend4@address4.com"
MyMail.Bcc = "friend5@address5.com;friend6@address6.com"
MyMail.Subject = "sending email via CDONTS NewMail"
MyMail.BodyFormat = 1
MyMail.MailFormat = 0
MyMail.Importance = 2
MyMail.Body = "Sending email with CDONTS NewMail" &_
"objects is easy! Try it!"
%>
If we wish to include an attachment with our mail message, we use the AttachFile method of the
NewMail object. This method has three parameters.

The first parameter is Source, of type String or Istream object. This parameter is required, and
must contain the full path and file name of the attachment. Only C/C++ and Java programs can
use an Istream object.

The second (optional) parameter is FileName, of type String. This provides a file name to appear
in the attachment's placeholder in the message. If not specified, the file name from the Source
parameter is used.

The third (optional) parameter is EncodingMethod, of type Long, which indicates the encoding of
the attachment. There are two possible values: 0, meaning the attachment is in UUEncode
format; and 1, indicating the attachment is in Base64 format. (Base64 is the encoding scheme
defined by MIME; UUEncode is an older format that you should use if you suspect your
recipient(s) may not have a MIME-compliant system.) The default value of this parameter
depends upon the MailFormat property. If the MailFormat property is set to 1, the default value of
EncodingMethod is 0. If the MailFormat property is set to 0, the default value of EncodingMethod
is 1.

In our example, we have already set the MailFormat property to 0, but we will still explicitly assign
a value of 1 to the EncodingMethod parameter, for demonstration purposes.
<%
Dim MyMail
Set MyMail = Server.CreateObject("CDONTS.NewMail")
MyMail.From = "justme@myaddress.com"
MyMail.To = "friend1@address1.com;friend2@address2.com"
MyMail.Cc = "friend3@address3.com;friend4@address4.com"
MyMail.Bcc = "friend5@address5.com;friend6@address6.com"
MyMail.Subject = "sending email via CDONTS NewMail"
MyMail.BodyFormat = 1
MyMail.MailFormat = 0
MyMail.Importance = 2
MyMail.Body = "Sending email with CDONTS NewMail" &_
"objects is easy! Try it!"
MyMail.Attachfile "c:\path\smiley.gif", "smilefile.gif", 1
%>
At last, we are ready to use the NewMail object's Send method to send our email. After the Send
method executes, the NewMail object becomes invalid and cannot be used for another message.
Therefore, being conscientious programmers, we set that object to Nothing to release the
memory. (We also do this because an accidental access of any kind to the NewMail object after
Send executes will raise an embarrassing error!)
<%
Dim MyMail
Set MyMail = Server.CreateObject("CDONTS.NewMail")
MyMail.From = "justme@myaddress.com"
MyMail.To = "friend1@address1.com;friend2@address2.com"
MyMail.Cc = "friend3@address3.com;friend4@address4.com"
MyMail.Bcc = "friend5@address5.com;friend6@address6.com"
MyMail.Subject = "sending email via CDONTS NewMail"
MyMail.BodyFormat = 1
MyMail.MailFormat = 0
MyMail.Importance = 2
MyMail.Body = "Sending email with CDONTS NewMail" &_
"objects is easy! Try it!"
MyMail.Attachfile "c:\path\smiley.gif", "smilefile.gif", 1
MyMail.Send
Set MyMail = Nothing
%>
That should do it!

We conclude by mentioning that the Send method has optional parameters for From, To, Subject,
Body and Importance (in that order). Therefore, we can include values for these properties when
calling the Send method, rather than explicitly assigning values to the corresponding properties of
the NewMail object. If the To property has already been given a value, and is also supplied as a
parameter to the Send method, the message is sent to all recipients in both lists. If the other
properties have been given values previously, and specified again in the Send parameters, the
prior values are overwritten.

In our example code segment, if we reached the point of calling the Send method and decided to
add a recipient to our mailing list, and also change the text of the subject line, this could be done
as shown below. The original recipients specified in the To property would receive the message,
in addition to the new recipient. The Subject property would be changed, but the From, Body, and
Importance properties would retain their earlier values, as would the other NewMail properties.
Note that a comma appears after the call to Send, but before the string intended for the To
property. This is because we are not modifying the From property, which is the first parameter to
the Send method. Without the comma, "youtoo@youraddress.com" would become the From
property value, and "new subject" would be appended to the To property value. Delineating
commas are not required after the last explicitly-provided parameter.
<%
Dim MyMail
Set MyMail = Server.CreateObject("CDONTS.NewMail")
MyMail.From = "justme@myaddress.com"
MyMail.To = "friend1@address1.com;friend2@address2.com"
MyMail.Cc = "friend3@address3.com;friend4@address4.com"
MyMail.Bcc = "friend5@address5.com;friend6@address6.com"
MyMail.Subject = "sending email via CDONTS NewMail"
MyMail.BodyFormat = 1
MyMail.MailFormat = 0
MyMail.Importance = 2
MyMail.Body = "Sending email with CDONTS NewMail" &_
"objects is easy! Try it!"
MyMail.Attachfile "c:\path\smiley.gif", "smilefile.gif", 1
MyMail.Send , "youtoo@youraddress.com", "new subject"
Set MyMail = Nothing
%>
Now that you know all about the CDONTS NewMail object, let's look at how to put this all together
in a working user interface. We offer two ways to do this. (Note: If you are viewing this tutorial
from a downloaded zip file, the links will not work.)

You can see an example of an cdonts email submission form.

Or you can download a zip copy of this tutorial and its supporting form-handling pages to see
how they work. Further you can easily customize these email forms for your own needs.

Note, however, that our sample user interface does not provide a means for the client to specify
an attachment. This is because the Request.Form method used to process the form is limited in
that it only allows plain text upload, and users often wish to include attachments in alternative
formats. If you wish to add attachment capability and support it fully, the Request.Form method
must be augmented with additional software, e.g. dgFileUpload.

[NOTE]
If you are using CDOSYS for Windows 2000 or Windows XP, the code will be be slightly different,
as shown below:

<%
Dim MyMail
Set MyMail = Server.CreateObject("CDO.Message")
MyMail.From = "justme@myaddress.com"
MyMail.To = "friend1@address1.com;friend2@address2.com"
MyMail.Cc = "friend3@address3.com;friend4@address4.com"
MyMail.Bcc = "friend5@address5.com;friend6@address6.com"
MyMail.Subject = "Sending Mail via CDOSYS for Windows 2000/XP"
MyMail.TextBody = "Sending email with CDOSYS Message " &_
"objects is easy! Try it!"
MyMail.AddAttachment "c:\path\smiley.gif"
MyMail.Fields("urn:schemas:httpmail:importance").Value = 2;
MyMail.Fields.Update()
MyMail.Send()
Set MyMail = Nothing
%>

[END NOTE]

We hope our CDONTS NewMail tutorial has been helpful. Thanks for browsing by, and, as usual,
make sure to visit the Guru often for our hottest tips and tutorials!

También podría gustarte