AspMail 3.x
About AspMail
AspMail allows you to send
mail using the standard SMTP protocol from any program that can use
ActiveX/OLE components. Features include:
- SMTP (sending) Messages
- Multiple File Attachments
- File attachments support MIME and UUEncoding
- US Ascii and ISO-8859-1 character sets
- PGP
- Subject line encoding for 8bit message subjects
- Redundant SMTP servers (If the primary SMTP server is down, the
secondary server is used)
- Special Header Support (Standard X-Priority headers, MS Mail
(including Exchange) priority headers, Urgent header, ConfirmReading and
ReturnReceipt Headers)
- Multiple concurrent users (Tested with 15 concurrent
connections)
Changes in AspMail
3.0
Better support for MTS.
Transactions are not supported in the 3.0 release but you should be able
to incorporate AspMail into MTS packages without any troubles.
Better COM support. AspMail
is now more compatible with VC, VFP, VB, PowerBuilder and other
development systems besides ASP.
Simple Mail
Example
Using the component is as
simple as
- Creating the object
- Setting a few properties
- Calling the SendMail method
The following code
demonstrates how to use AspMail from VBScript. In this example Joe from
Joe’s Widgets wishes to send an email to John Smith. Joe’s mail server is
located at mailhost.localisp.net. Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
Mailer.FromName = "Joe’s Widgets Corp."
Mailer.FromAddress= "Joe@somehost.com"
Mailer.RemoteHost = "mailhost.localisp.net"
Mailer.AddRecipient "John Smith", "jsmith@anotherhostname.com"
Mailer.Subject = "Great SMTP Product!"
Mailer.BodyText = "Dear Stephen" & VbCrLf & "Your widgets order has been processed!"
if Mailer.SendMail then
Response.Write "Mail sent..."
else
Response.Write "Mail send failure. Error was " & Mailer.Response
end if
By testing the result of the
SendMail method we can determine if the mailing process was successful or
not.
Form Handling
All or partial input for a
message may come from a form. For example, a form posted to the server
with a request method of GET (i.e. <form action="/scripts/AspMail.asp"
method=get>) may provide the message recipient’s email address, subject
and message text as follows: Mailer.AddRecipient Request.QueryString("ToName"), Request.QueryString("ToAddress")
Mailer.Subject = Request.QueryString("Subject")
Mailer.BodyText = Request.QueryString("MsgBody")
The form may also use the
POST method (i.e. <form action="/scripts/AspMail.asp" method=post>)
in which case the code would look as follows: Mailer.AddRecipient Request.Form("ToName"), Request.Form("ToAddress")
Mailer.Subject = Request.Form ("Subject")
Mailer.BodyText = Request.Form ("MsgBody")
You can use any mixture of
static and dynamic data in setting the components properties as dictated
by your needs. For example, you may wish to send the mail to a single
user. In this case you could modify the code to look something like this:
Mailer.AddRecipient "John Smith", "jsmith@alocalhost.com"
Mailer.Subject = Request.QueryString("Subject")
Mailer.BodyText = Request.QueryString("MsgBody")
Generic Form
Handling
In some cases users may wish
to use a number of different forms to send email with the same block of
code. ASP allows you to loop through each QueryString or Form variable and
append each one to string variable which is then assigned to the BodyText
property. Please note: AspMail cannot control the order that these
variables are returned in. This is a function of ASP, not AspMail. ASP
takes the form variables and creates the appropriate Request collection
(QueryString or Form) and stores the data in an order that AspMail cannot
change. If you use this method you must accept ASP's order. strMsgHeader = "Form information follows" & vbCrLf
for each qryItem in Request.QueryString
strMsgInfo = strMsgInfo & qryItem & " - " & request.querystring(qryItem) & vbCrLf
next
strMsgFooter = vbCrLf & "End of form information"
Mailer.BodyText = strMsgHeader & strMsgInfo & strMsgFooter
Setting Mail
Priority
There are a couple of
headers that can be modified to set message priority. The Priority
property sets the message priority on a scale of 1 to 5. A priority of 1
means HIGH. A priority of 3 means NORMAL and a priority of 5 means LOW. In
addition to this you can also set the Urgent property if the message
status is urgent. The Urgent property is a true/false property.
How to Use the DateTime
Property
The component creates a
Date/Time value for the message based on the calculated GMT time. The
DateTime property was added to allow users to set a custom date/time
timezone. The following code demonstrates how to set the DateTime to US
Central Standard Time. By slightly altering the code you can adjust this
to work for your own timezone. function DayName (intDay)
select case intDay
case 1
DayName = "Sun"
case 2
DayName = "Mon"
case 3
DayName = "Tue"
case 4
DayName = "Wed"
case 5
DayName = "Thu"
case 6
DayName = "Fri"
case 7
DayName = "Sat"
end select
end function
function MonthName (intMonth)
select case intMonth
case 1
MonthName = "Jan"
case 2
MonthName = "Feb"
case 3
MonthName = "Mar"
case 4
MonthName = "Apr"
case 5
MonthName = "May"
case 6
MonthName = "Jun"
case 7
MonthName = "Jul"
case 8
MonthName = "Aug"
case 9
MonthName = "Sep"
case 10
MonthName = "Oct"
case 11
MonthName = "Nov"
case 12
MonthName = "Dec"
end select
end function
[set other Mailer properties]
Mailer.DateTime = DayName (WeekDay(Date)) & ", " & Day(Date) & " " &
MonthName(Month(Date)) & " " & Year(Date) & " " & FormatDateTime(Now, 4)
& " -0600 (CST)"
Mailer.SendMail
Notes About Creating the
Mailer Object
You can create the mailer
object at two different points in time:
- Immediately before sending an email
- At the session scope and saved as a session object
You will have to decide when
and where it is appropriate to create the object based on your particular
application. If you aren't sure which way to create the object reference,
or for typical usage, you should create the object immediately before
sending your email. Your code would look like this: Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
... [Set properties]
if Mailer.SendMail then ...
Creating these local
references, as demonstrated above, allow you to use the object on multiple
application threads at the same time.
To create an object
reference at the session level, your code might look something like
this: if Not IsObject (session("Mailer")) then
Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
Set session("Mailer") = Mailer
else
Response.write "Cached session object reference being used
" Set Mailer = session("Mailer") end if
Multiple Host
Support
AspMail provides one host
property to set up remote SMTP server addresses. The RemoteHost property
should be set to your primary and secondary server’s address separated by
semicolons. In the event that the primary server is down, AspMail will
attempt to use the secondary server. For example, Mailer.RemoteHost = "mailhost.localisp.com;mailhost.anotherisp.com"
PGP Support
AspMail now supports PGP.
See the pgpmail.asp script for an example of usage. ServerObjects Inc. is
not responsible for PGP support. If you have questions about PGP please
contact the developers of PGP. PGPMail.asp is part of the AspMail
evaluation zip file.
Questions about
AspMail
See http://www.serverobjects.com/TechComm.htm
for general ASP support errors and issues. Download our troubleshooting
utility for help with configuration problems.
| How do I determine a cause
of mail failure? |
Note about FromAddress: You
must specify a value for the FromAddress property. Mail failure
will occur without a FromAddress.
If the component can determine why the
SendMail method failed, that information will be stored in the
Response property. So, for example, to print that information to the
clients browser you could add the following code: if not Mailer.SendMail then
if Mailer.Response <> ''" then
strError = Mailer.Response
else
strError = "Unknown"
end if
Response.Write "Mail failure occured. Reason: " & strError
end if
Another fairly common problem is when a
user reports that a specific feature is not working. For example
BCC's may seem to never reach their destination. A valuable
debugging tool is available with the SMTPLog feature. Assign a valid
filename to this property and the contents of the SMTP transaction
that occurs during a SendMail call will be recorded to this file. If
you find that the SMTP transaction occurs without error then you
should check elsewhere for the cause of mail delivery failure.
Invariably the user finds that the BCC address was invalid or that
the address was misconfigured. The SMTPLog feature allows you to
verify if the transactions are complete and valid before pursuing
other avenues in determining the cause of failure. |
| Checking the
Mailer.Response property returns
"File Access Denied"
or
"Cannot create file"
or
"I have a TMP/TEMP var but it still
isn't working"
What's wrong? |
You probably don't have a
TMP or TEMP path set up, or if you do, the IIS User (or any users
authenticating under IIS) don't have read/write access to the this
directory.
- Make sure the directory
exists.
- Make sure the TMP or TEMP variable
exists in your NT/Win95 environment. Under NT this must be a
system environment variable, not a user environment
variable. If TShoot (see our tech support page) doesn't show the
var it isn't a system var. It must be a system
var.
- Make sure all users which need
access to the component (the anonymous IIS user and any other
users which authenticate under IIS) have read/write access to this
path.
How to determine where
your TMP/TEMP dir points to
AspMail versions 2.5.8 and higher have
a method called GetTempPath. To display where your TMP path is set
to place the following code in an ASP script and run it.
Set Mailer =
Server.CreateObject("SMTPsvg.Mailer") Response.Write
Mailer.GetTempPath
Your Win32 OS is designed to find your
temporary path in the following manner:
- Check for TMP.
- If it does not exist, check for
TEMP.
- If it does not exist use the current
directory. ASP tends to use the \WinNT directory in this
case.
|
| What would cause an
"Operation timed out error"?
or
"AspMail has been working great but
suddenly I'm getting an 'Operation timed out' error. |
Reasons for operation timed
out include:
- SMTP server is down, overloaded or
simply not responding
- Firewall blocking port 25 between
AspMail and SMTP server
- Packet filtering blocking port 25
between AspMail and SMTP server
- IP route is down
- Your Winsock configured DNS server
is down
To check using another method run
telnet [smtp hostname] 25
from the IIS server where
AspMail is installed. If telnet can see the SMTP server, then
AspMail can see the server also. |
| I'm adding attachments but
they aren't getting added to the actual mailing. What's
wrong? |
- The path specified is not
valid.
- The user the component is running
under, typically the anonymous IIS user, does not have rights to
open the file. The anon IIS user, by default, cannot read from
networked drives so a path such as \\foobar\files\myfile.zip is
not valid.
- The file is open by another process
that's denying reads to the file.
|
| Is there a comprehensive
list of errors that can be returned by AspMail? |
There are quite a few
errors that can be returned. We do not have a comprehensive list,
primarily because these errors are returned from systems AspMail is
dependent on. The errors can come from your SMTP server (errors vary
from vendor to vendor), from WinSock errors (documented by
Microsoft) and general OS errors such as out of memory, disk
read/write failures etc... (again documented by
Microsoft). |
| "AddCC or AddBCC doesn't
work" - is this a bug with AspMail?
or
"I'm adding multiple recipients but
only the first one is getting delivered. What's wrong with
AspMail?" |
AddRecipient, AddCC and
AddBCC work just as they should. The problem is not with AspMail. It
is likely that your SMTP server is rejecting "foreign addresses"
(see "no relay" question below).
To test whether AspMail is functioning
properly use the SMTPLog property to capture an SMTP session with
multiple recipients. All the recipients you send to should appear in
the log as the SMTP envelope is sent. If they all appear then the
problem is with your SMTP server or an SMTP server down the stream
(or your addresses are invalid). |
| The syntax
Mailer.AddRecipient = "name",
"name@address.net"
and
Mailer.AddRecipient =
"name@address.net"
both return a VBScript error. What's
wrong? |
First off, remove the =
sign. AddRecipient sounds like and is actually a method, not a
property. Also AddRecipient takes two parameters. See
AddRecipient in the methods listing for details. |
| What's the syntax for
adding multiple recipients? |
Call AddRecipient, AddCC or
AddBCC for each recipient. There's no other way to add multiple
recipients.
Mailer.AddRecipient "name1",
"address1" Mailer.AddRecipient "name2",
"address2" Mailer.AddBCC "name3", "address3" |
| How do I define the
sensitivity of the message? |
Outlook allows you to
define a message sensitivity. You can do this using as mail by
adding the sensitivity header along with the proper text for the
sensitivity header.
For example:
Mailer.AddExtraHeader "Sensitivity:
Company-Confidential" |
| How do I create a hyperlink
in my message? |
Set Mailer.ContentType =
"text/html" and include the hyperlink just like you would with
html.
<html> <head><title>AspMail
HyperLink</title><head> <body> <H3>AspMail
HyperLink</H3> <% Set Mailer =
Server.CreateObject("SMTPsvg.Mailer") Mailer.FromName = "Status
Update Report" Mailer.FromAddress =
"useyour@isphostnamehere.com" Mailer.RemoteHost =
"your.smtp.server" Mailer.AddRecipient "Your Recipient",
"yourrecipients@addressgoeshere.com" Mailer.Subject = "AspMail
Hyperlink" Mailer.ContentType = "text/html" Mailer.BodyText =
"<html><body>Here's some <a
href=""http://www.serverobjects.com/"">info</a></body></html>" if
Mailer.SendMail then Response.Write "Mail
sent..." else Response.Write "Mail failure. Check mail
host server name and tcp/ip connection..." Response.Write
"<p>" & Mailer.Response end if
%> |
| How do I create a
line-break in a message? |
Under VBScript you can use
the predefined constant VbCrLf. Simply using a Chr(13) or a Chr(10)
will not work --you must use both -- the VBCrLf defined constant is
the preferred method. A Carriage-return and line-feed character are
required to create a new line in the message. See the sample scripts
for examples. |
| "Do I need to install SMTP
on my server?" |
AspMail "knows" how to talk
SMTP without any external dependencies. You do not need to have
Exchange or other products installed (outside of the OS) for AspMail
to work. |
| How do I set the username
and password to send mail? |
Standard SMTP does not use
a uid/pwd so it isn't needed. The protocol used to retrieve mail,
POP3 typically requires a uid/pwd but AspMail doesn't use POP3 since
it is a send mail component. |
| What versions of PGP does
AspMail support? |
AspMail can support any
encryption program that uses command-line parameters. Using PGPPath
and PGPParams you can specify input, output and processing options.
The current version of PGP (5.0) does not support command-line
parameters but the commercial PGP 4.x does as well as the freeware
(non-commercial use) PGP 2.6.2. |
| How do I troubleshoot PGP
usage? |
- Check permissions on the pgp.exe.
The anon IIS user (if you are calling PGP from that user account)
will need rights to read and execute files from the PGP
directory.
- Verify the path and params you are
setting up to call PGP.
- Use task manager to see if PGP is
getting executed on the server.
- Check the Mailer.Response property
immediately after you call GetBodyTextFromFile to see if
any O/S errors are getting returned by the call to PGP.
- If the error returned in the
Response property indicates that file access was denied, or that
there was a file access timeout you need to find out...
- If the file is getting created in
the path specified.
- What has the file open. You can
use Filemon
for Windows NT and HandleEx
from Systems Internals to help debug these issues.
|
| My mail to AOL is bouncing.
What am I doing wrong? |
AOL will not accept
anything other than a true address in the "From:" heading. Just
about every mail system out there, except AOL and Compuserve, will
accept the "No Mail Address" as the "From:" header. (thanks to R.S
for this info).
|
| I want to create a mail
service like HotMail or Yahoo Mail. Do you have script code that
would serve as a basis for this? |
No. We only provide the
AspMail and AspPOP3 components. You will have to either write the
code yourself or find a consultant to do it for you. |
| I want to use AspMail from
VB, FoxPro or [insert name here]. |
The product page has
several examples of usage from other languages. Be sure you are
using AspMail 3.x since this version corrects a problem some users
reported with previous versions. |
| Does AspMail support 8bit
messages?
or
"does AspMail support Japanese
character set" |
AspMail supports any 8 bit
characters but please note:
- Message bodies may be 8bit.
- Some SMTP servers drop the 8th bit
in message headers including Subject lines.
- You can encode message subjects
using a new method named EncodeHeader. See the methods
listing for details. Some character sets don't work properly using
this method, some do. We don't have any support for character sets
that don't work properly using this encoding.
|
| Can I repeatedly assign
values to the BodyText property? and "The message text keeps growing
with each email I send." |
Yes, the text will be
appended to the message. Use ClearBodyText if you need to clear the
message text. |
| Can AspMail be used to
retrieve files off the client computer? |
AspMail is a server-side
component. Retrieving files from the client computer requires a
client-side component that has access to the client's local harddisk
or a browser that supports file uploads in addition to a server side
component/extension that can accept those files. AspMail does
not support this function. |
| How do I get Exchange to
route Internet email to the Net? |
Exchange uses a service
called the Internet Mail Connector (IMC) to allow it to act as an
SMTP server and transmit and receive mail via a TCP/IP network. If
you are not running the IMC you will not be able to send or receive
mail from the Internet by AspMail or any other means.
Once you have SMTP mail going with the
IMC, no further action should be necessary to use AspMail. (Thanks
to Steve Crane for this information).
Note: You must enable the rerouting on
your Exchange's Internet Mail Connector. Go in the properties of
your Internet Mail Services (Exchange 5.0). Check the reroute
incoming SMTP mail option and add a route to your domain. Mail sent
to "yourdomain.com" should be accepted as "inbound". Thanks to
Sébastien Stormacq for this information. |
| How do I upgrade to the
latest version? |
Download the latest "eval"
version and follow the upgrade directions provided earlier in this
document. |
| Can I redistribute this
control with my products? |
The license agreement does
not permit redistribution of AspMail. |
| The SMTP server is
reporting back a "no relay" error. What's wrong?
|
The SMTP server is looking
at your FromAddress and determining that it doesn't know who you
are. Some SMTP servers are configured to disallow the "relaying" or
transfer of mail originating from addresses outside of its own
domain. The only solution is to provide a FromAddress that's local
to the SMTP server's domain or get the operator of the SMTP server
to allow the FromAddress you are using. This setting is commonly
used by ISP's to prevent spammers from using their
resources. |
| What does error "554 No
valid recipients" mean?
or
"503 Need RCPT
(recipient)" |
500 series errors are
errors that the SMTP server generates. This error means that the
message recipients given are either not given (you didn't use
AddRecipient, AddCC or AddBCC) OR they are not valid recipients for
this SMTP server. This is often associated with the "no relay"
issued covered above. The SMTP server rejects the given recipients
and then issues this error. This typically happens when you have
IgnoreInvalidRecipients set to true. You can verify that the SMTP
server is ignoring your recipients due to the "no relay" issue or
for any other reason by using the SMTPLog property to generate a log
and then look at the rejection errors in the log file. |
Some of our emails are
getting equal signs at the end of lines in some messages.
Why?
|
AspMail can encode high
characters using a scheme where the = sign indicates a character
to be decoded follow by the hex string value of the character to
be encoded. This system of course assumes that the client can decode
these characters (which most can). This is called quoted-printable
encoding. The default for AspMail is not to use QP encoding. Things
that trigger automatic QP encoding:
- High characters - characters with
the following ordinal values 0..31,61,128..255
- Long lines of a message body (you
can turn wordwrap on to fix this case)
Most clients are capable of handling QP
encoding. If your client is not capable then you should upgrade your
client or you must work within the above limitations to prevent the
QP encoding from occuring. |
| Sometimes I get multiple
messages sent when I call SendMail. Why? |
AspMail has an internal
routine to look for errors. If an error occurs at any point (even
after the text of the message has been sent to the SMTP server)
AspMail will go ahead and attempt to send it a second time in an
attempt to complete the SMTP transaction without any errors if,
and only if, you have multiple RemoteHosts set up in the RemoteHost
property. The AspMail routine will only attempt 1 retry in this
case.
If you only have one host name setup
then the problem will be found in #1) your calling SendMail more
than once or #2) you are not handling cases where the user does a
double-click on his/her browser. |
| With AspMail can I have
"required fields" on my HTML forms or other form processing
functionality. Can AspMail change the order I get form field data
back? |
- Microsoft's ASP, not AspMail
controls form data order. If you are looping through the form data
in ASP order it probably won't be the original form order. You'll
have to hard code field names to force the data back in a specific
or original form order.
- Required fields are a function of
HTML and client side scripting, not AspMail. If you used a CGI
library in the past that handled those issues for you, it what
only because they delved into areas outside of SMTP/Mail.
AspMail's only function in life is to send mail. It does not
handle client side HTML/scripting.
|
| "Can someone use AspMail to
send SPAM through our system?" |
AspMail does not accept
SMTP connections and therefore cannot be used to relay SMTP traffic.
AspMail can generate new SMTP message traffic but only if you
provide a script page to generate it. Therefore it is under the Web
operator's control. |
| WebTrends is generating
multiple messages when its schedule runs. |
WebTrends is probably
parsing your Web tree and calling the HTML and ASP scripts to
determine what they are. In the process the ASP scripts you have
that call AspMail may be getting called at the same time. Your
options are:
- You are going to have to configure
WebTrends not to call these scripts. - or -
- Modify your scripts so that if
WebTrends is calling them they don't fire off a message. - or
-
- Contact WebTrends for another
solution. AspMail can't control WebTrends.
|
| My component is registered.
Should the Expires property return a date? |
No. Registered versions
return N/A for an expiration date. The registration process (per the
instructions you received) should be run on the server. |
| I'm mailing a large number
of people. At some point in the mailing it fails. Can you give me
any tips? |
The first tip is to use the
SMTPLog property to write an SMTP log to disk and see what the point
of failure is based on the log. The SMTP server is probably
rejecting your message for some reason and the cause is typically
determinable from the log.
Secondly, some SMTP servers only accept
mail for locally known recipients. The SMTP server may be rejecting
your message since it is being addressed to recipients outside the
domain of that SMTP server. This is unusual but could possibly be
the problem you are running into. |
| Using the SMTPLog property
I got an error #132. How can I look up numeric errors returned by
AspMail to find out what it means? |
TShoot
under the file menu has a Win32 error code lookup form. |
| What are some of the issues
that affect the speed of the mailing? |
A small message should take
3-4 seconds to send if the server is local and all other conditions
are normal. The following list are some items that can affect
transfer speed.
- The slower the TCP connection the
longer the mailing will take. Typically a local server is much
faster than a remote server. If you are losing packets between
your server and the SMTP server you can expect longer times due to
this packet loss.
- The size of the mailing. The larger
the message the longer the message transfer will take to
send.
- CPU utilization: If your CPU is
experiencing heavy usage you can expect it to take longer to
transfer mail.
- SMTP server utilization: If your
SMTP server is experiencing heavy traffic response times from the
server are going to take longer thus increasing the time it takes
to send a message.
One thing we've found is that by
changing the RemoteHost name from a hostname to an IP address can
cut 3 or 4 seconds off some messages. Even if the RemoteHost name is
set to the local server's name, we've found some messages waiting
for the hostname lookup. Just change the address to an IP and you
may see an increase in the speed. |
| Is there a limit to the
length of email addresses. |
AspMail support longer
email addresses than anyone has so there are no practical limits. If
your email is not being delivered see the previous questions for
pointers on how to troubleshoot mail failures. |
| Does the 2 CPU license
cover two servers or two processors? |
In accordance with the
license agreement, the 2 CPU license would cover either 2 single CPU
servers or 1 dual CPU server. With this pricing model, AspMail is
far more inexpensive than any "competing"
products. |
AspMail
Properties
| Property |
Description |
| BodyText |
The message body text. To
clear the text once you have set it use the ClearBodyText
Method.
Example:
Mailer.BodyText = "Your order for 15
widgets has been processed" |
| CharSet |
The character set. By
default the char set is US Ascii
Valid values:
- 1 = US Ascii
- 2 = ISO-8859-1
Example:
Mailer.CharSet = 2 |
| ConfirmRead |
The ConfirmReading flag. If
this is set to true AND the recipients email program supports
this feature (and it is enabled) the
recipients email program will send a notice back to the FromAddress
confirming that this email has been read.
Example:
Mailer.ConfirmRead =
true |
| ContentType |
The ContentType property allows you to
set the ContentType header of the message's BodyText. If, for
example, you wanted to send HTML as the messages's body, you could
set ContentType = "text/html" and EMail programs that support HTML
content could properly display the HTML text.
Note: The ContentType property is
ignored if you have file attachments.
Example:
Mailer.ContentType =
"text/html" |
| CustomCharSet |
If you wish to use a character set
besides the included types you can set CustomCharSet to a character
set string.
Example:
Mailer.CustomCharSet = "ISO-2022"
or Mailer.CustomCharSet = "big5" |
| DateTime |
AspMail will, by default, create a
Date/Time header for your local system using GMT. If you would like
to override the date/time calculation set the DateTime property to a
valid date/time string in the format defined by RFC 822 & RFC
1123.
Example:
Mailer.DateTime = "Fri, 02 May 1997
10:53:49 -0500" |
| Encoding |
The encoding type for
attachments. The default setting is MIME.
Valid values:
Example:
Mailer.Encoding = 1 |
| Expires |
If the component is an eval
version the expires property will return the date that the component
quits functioning.
Example:
Response.Write "Component Expires: "
& Mailer.Expires |
| FromName |
The message originator’s
name.
Example:
Mailer.FromName = "Joe’s Widget
Shop" |
| FromAddress |
The message originator’s
email address.
Example:
Mailer.FromAddress =
"joe@widgets.com" |
| IgnoreMalformedAddress |
Defaults to false. When false AspMail
will check for '@' in the email address for calls to AddRecipient,
AddCC and AddBCC. An error would be returned in the Response
property. When this property is set to true AspMail will not perform
any address syntax validation. If you are using AspMail to send a
message through an SMS gateway or fax system you may need to set
this property to true. |
| IgnoreRecipientErrors |
Defaults to true. If true AspMail will
ignore error messages returned by the SMTP server for invalid
addresses. This is useful when a mailing is addressed to a number of
recipients. |
| Live |
Live allows you to test the component
without an SMTP server. If Live is set to false then the NET SEND
message will be executed with the FromName property being used as
the recipient of the message. Only the subject is sent to the
recipient.
Example:
Mailer.FromName =
"ASPProgrammer" Mailer.Live = false |
| Organization |
Sets the Organization header in the
message.
Example:
Mailer.Organization = "Your Company
Name" |
| PGPPath |
The path where PGP is
located. |
| PGPParams |
Parameters that PGP will
use to process message. |
| Priority |
Sets the message priority.
Priorities are 1-5 and are reflected in the X-Priority
Valid values:
- 1 – High
- 3 – Normal
- 5 – Low
Example:
Mailer.Priority = 1 |
| RemoteHost |
The remote SMTP host that
the message will be sent through. This is typically an SMTP server
located at your local ISP or it could be an internal SMTP server on
your companies premises. Up to 3 server addresses can be specified,
seperated by a semicolon. If the primary server is down the
component will attempt to send the mail using the seconary server
and so on.
Example:
Mailer.RemoteHost =
"mailhost.myisp.net" or
Mailer.RemoteHost =
"mailhost.myisp.net; mailhost.myotherisp.net" |
| ReplyTo |
The ReplyTo property allows you to
specify a different email address that replies should be sent to. By
default mail programs should use the Reply-To: header for responses
if this header is specified. |
| Response |
The Response property returns any
error messages that may occur. |
| ReturnReceipt |
The ReturnReceipt flag. If
this is set to true AND the recipients SMTP server supports
this feature (and it is enabled) the
recipients SMTP server will send a notice back to the FromAddress
confirming that this email has been delivered.
Example:
Mailer.ReturnReceipt =
false |
| SMTPLog |
If you need to debug the
session give a log file name here. Make sure the IUSR_XYZ IIS user
has security that allows the component to write to this file.
Warning: Do not use this setting in situations where multiple users
can access this component at the same time. This is for single user
debugging ONLY!
Example:
Mailer.SMTPLog =
"c:\smtplog.txt" |
| Subject |
The message subject.
Example:
Mailer.Subject = "Stock split
announced!" |
| SuppressMsgBody |
The SuppressMsgBody property is true
by default and is used in conjuction with the SMTPLog property. When
SMTPLog is set to a file and SuppressMsgBody is true the log file
receives a copy of the message text. If SuppressMsgBody is false the
message text is not sent to the log. |
| TimeOut |
Timeout is the maximum time
that AspMail should wait for a response from the remote server. The
default is 30 seconds.
Example:
Mailer.Timeout = 15 |
| Urgent |
The urgent flag sets the
X-Urgent header in the outgoing message. Not all mail readers
support this flag.
Example:
Mailer.Urgent = true |
| UseMSMailHeaders |
MS-Mail priority headers,
by default, are sent in addition to the standard SMTP priority
headers. You can turn MS-Mail headers off with this property
Example:
Mailer.UseMSMailHeaders =
false |
| Version |
Gets the internal component version
number.
Example:
Response.Write "Component Version: "
& Mailer.Version |
| WordWrap |
The WordWrap property is off by
default. Setting WordWrap to true causes the message body to
wordwrap at the position specified by the WordWrapLen
property. |
| WordWrapLen |
The WordWrapLen property is set to 70
by default. You can modify the position that wordwrap occurs by
changing this value. |
AspMail
Component Methods
| Method |
Parameters |
Return
Value |
Description |
| SendMail |
None |
True or False
Example:
if Mailer.SendMail then
Response.Write "Mail
sent..."
else
Response.Write "Mail failure. Check
mail host server name and tcp/ip connection..."
end if |
The SendMail method
attempts to send the email. |
| AddRecipient |
Mailer.AddRecipient "Jay
Jones", "jayj@somehost.net" |
True/False based upon
success or failure. |
Adds a new recipient, as
shown in the message's To: list. |
| ClearRecipients |
None |
None |
Clears any recipients assigned to the
To list. |
| AddCC |
Mailer.AddCC "Jay Jones",
"jayj@somehost.net" |
True/False based upon success or
failure. |
Adds a new recipient, as shown in the
message's CC list. |
| ClearCCs |
None |
None |
Clears any recipients assigned to the
CC list. |
| AddBCC |
Mailer.AddBCC "Jay Jones",
"jayj@somehost.net" |
True/False based upon success or
failure. |
Adds a new Blind Carbon Copy
recipient. BCC recipients are not shown in any
message recipient list. |
| ClearBCCs |
None |
None |
Clears any recipients assigned to the
BCC list. |
| ClearAllRecipients |
None |
None |
Clears all recipients
assigned to the To, CC and BCC
lists. |
| AddAttachment |
Filename to attach to
message.
Example:
Mailer.AddAttachment
"d:\shipping\proddsk1.zip" |
N/A |
Adds attachments to current
mailing. You must use an explicit path to attach files.
Make sure that the IUSR_XYZ IIS user,
or the authenticated user has security rights that allow the
component to read the necessary files! Note: Attachments may not be
supported in some eval versions. |
| ClearAttachments |
None |
None |
Clears any attachments that were
previously set.
Example:
Mailer.ClearAttachments |
| ClearBodyText |
None |
None |
Clears any text assigned to
the message’s body which may have been set previously by using the
BodyText property. |
| ClearExtraHeaders |
None |
None |
Clears any X-Headers that
were set by use of AddExtraHeader. |
| AddExtraHeader |
A string value that forms a
proper SMTP X-Header
Example:
Mailer.AddExtraHeader ("X-HeaderName:
XHdrValue") |
True or false. Returns true
if X-Header was added. |
Adds extra X-Headers to the
mail envelope. |
| GetBodyTextFromFile |
See pgpmail.asp for more
information. |
See pgpmail.asp for more
information. |
Loads message's body text
from a file. Optionally runs PGP on the message text.
See pgpmail.asp for more
information. |
| EncodeHeader |
strValue |
strValue encoded as
String |
Encodes a string in RFC1522
format to provide support for 8bit mail headers such as 8bit subject
headers.
Example:
Mailer.Subject =
Mailer.EncodeHeader("Résponse de Service à la
clientèle") |
| GetTempPath |
N/A |
strPath |
Returns the path set up by
the OS for temporary mail files. See the discussion on TMP env
variables for more
information. | |