|
Subroutines w/Dictionary
Objects by Charles Carroll
Subroutines using traditional parameters cannot
support optional or variable parameters. Thanks to the wonders of dictionary
objects, see:
http://www.learnasp.com/freebook/asp/dictionary.aspx
subroutines can accept merely one dictionary objects which can contain
simple variables, objects and other items to pass in.
filename=/learn/test/mailtool1.asp
<!--#include file="lib_mailtool.asp"-->
<%response.buffer=true%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>MailTool Demo</title>
</head>
<body bgcolor="#FFFFFF">
<%
set mailparms=server.CreateObject("Scripting.Dictionary")
mailparms.Add "goodmailmsg", ""
mailparms.Add "who", "Sith Lord"
mailparms.Add "whoemail", "darthcarroll@asplists.com"
mailparms.Add "whofrom","Anakin Skywalker"
mailparms.Add "whofromemail", "jedi@senate.com"
mailparms.Add "subject", "need help?"
BodyOfMail="I am thinking about"
BodyOfMail=BodyOfMail & vbcrlf & "the dark side!!!"
BodyOfMail=BodyOfMail & vbcrlf & "Let me know if you need a hand!"
mailparms.Add "body", BodyOfMail
Call MailThat(mailparms)
set mailparms=nothing
%>
</body>
</html>
The Include file lib_mailtool.asp looks like
this:
filename=/learn/test/lib_mailtool.asp
<%
SUB MailThat(Dictparm)
goodmailmsg=Dictparm.item("goodmailmsg")
who=Dictparm.item("who")
whoemail=Dictparm.item("whoemail")
whofrom=Dictparm.item("whofrom")
whofromemail=Dictparm.item("whofromemail")
whobcc=Dictparm.item("whobcc")
whobccemail=Dictparm.item("whobccemail")
subject=Dictparm.item("subject")
mailbody=Dictparm.item("body")
IF instr(whoemail,"@") >0 THEN
goodemail=true
ELSE
goodemail=false
reason="bad target mail:" & whoemail & " "
tempSUBJ="bad signup"
END IF
Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
'Mailer.RemoteHost = "mail.innerhost.com"
Mailer.RemoteHost = "localhost"
Mailer.FromName = whofrom
Mailer.FromAddress = whofromemail
Mailer.AddRecipient who, whoemail
Mailer.AddBCC whobcc,whobccemail
mailer.subject = subject
Mailer.BodyText = mailbody
If goodemail=false THEN
response.write "<p align='left'><font face='Comic Sans MS' color='#8000FF'>"
response.write "<big>Errors in processing request!<br>"
response.write "Your email address was invalid<br>"
response.write "<a href='/search'>Search Is Here</a> If You Wanted That!<br>"
response.write "OR Enter Correct Email address in previous form</big></font></p>"
END IF
IF Mailer.SendMail and goodemail=TRUE THEN
If goodmailmsg="" THEN
response.write "mail sent to " & who & "(" & whoemail & ")"
ELSE
response.write goodmailmsg
END IF
ELSE
IF goodemail=TRUE THEN
badmailsend=TRUE
END IF
END IF
IF badmailsend=TRUE THEN
response.write "Error Sending Mail!<br>"
response.write mailer.response & reason
response.write "<br>Sorry! Try Later...<br>"
END IF
End Sub
%>
|