There are several ways through which emails can be sent via ASP. The method which I am going to demonstrate will use CDOSYS and will use SMTP authentication. Secondly, I will encapsulate the code in a general function so that it can be used in any of your ASP pages by just including this file. The salient features of the code which I have demonstrated are:
1) Usage of a function, thus expanding portability.
2) Optional usage of fields like 'Cc' and 'Bcc' as per the senders discretion.
3) The sender can skip the 'From' email address if it is same as the SMTP user.
4) The sender can decide whether the content of the mail is to be send in text or html format.
5) After the mail is sent, an error number, if any, is returned. Thus, the sender can write proper error handling code, if required.
So let's begin!
1) Create a file called 'EMail.asp', or you can choose any other name as per your preference.
2) Paste the below code into it:
<!;-- METADATA TYPE="typelib" UUID="CD000000-8B95-11D1-82DB-00C04FB1625D" NAME="CDO for Windows 2000 Library" --> <% Function SendMail(SMTPServer, SMTPUserName, SMTPPassword, EMailFrom, EMailTo, EMailCc, EMailBcc, EMailSubject, EMailType, EMailContent) Dim cdoConfig Dim cdoMessage Dim intErr Set cdoConfig = CreateObject("CDO.Configuration") With cdoConfig.Fields .Item(cdoSendUsingMethod) = cdoSendUsingPort .Item(cdoSMTPServer) = SMTPServer .Item(cdoSMTPAuthenticate) = 1 .Item(cdoSendUsername) = SMTPUserName .Item(cdoSendPassword) = SMTPPassword .Update End With Set cdoMessage = CreateObject("CDO.Message") With cdoMessage Set .Configuration = cdoConfig If Len(Trim(CStr(EMailFrom))) = 0 Then From = SMTPUserName Else From = EMailFrom End If .To = EMailTo If Len(Trim(CStr(EMailCc)))41; <> 0 Then .Cc = EMailCc If Len(Trim(CStr(EMailBcc))) <> 0 Then .Bcc = EMailBcc .Subject = EmailSubject If EMailType = "text" Then TextBody = EMailContent ElseIf EMailType = "html" Then HTMLBody = EMailContent End If .Send intErr = Err.Number End With Set cdoMessage = Nothing Set cdoConfig = Nothing SendMail = intErr End Function %>
Using this function is extremely simple and just a matter of including the above file and calling the function. Let's take an example where you have to send mails from an ASP file called 'MailMembers.asp'. Follow the below steps to implement this:
1) Move the 'EMail.asp' in your 'includes' directory. Typically this directory is called 'includes' itself, personally I use that name for the sake of convenience.
2) Open the ASP file, in our case it would be 'MailMembers.asp'.
3) Scroll to the top and insert the below line at the top of the page, but below the '@Language' or 'Option Explicit' or any other directives, if you are using them:
<%@Language=VBScript%> <% Option Explicit %> <!-- #include virtual = "/Includes/Email.asp" --> 'Other Include files follows... ----------------- ----------------- ----------------- 'Your regular ASP code follows... <% ----------------- ----------------- ----------------- %>
<% 'Declare Variables Dim intError Dim strResult intError = SendMail("mail.mydomainname.com", "firstname.lastname@example.org", "mypass", "email@example.com", "firstname.lastname@example.org", "", "", "New membership!", "text", "Welcome to our club!") If intError = 0 Then 39;No errors, mail sent strResult = "The mail has been sent successfully" Else strResult = "There was a problem sending the mail" 39;Error Handling code follows End If 'Inform the user Response.Write(strResult) %>
Your comments and/or suggestions are welcome.