Hi Experts,
My company just migrated to Lotus Notes emailing system and I need to convert all our current web applications to communicate using Lotus Notes. The application that I currently needs to change is our Online Leave Application which was written in vbscript. I have created a new sendmail function to send mail via lotus notes in the web page, however I am getting error message that I am unable to createobject("Notes.NotesSession").
I saw your posting that you are able to load Lotus Notes email to the webpages, hence I strongly believe you are able to communicate using the Lotus Notes COM objects using vbscript. I hope that you can help me on this matter in order to convert my web applications to send email via Lotus Notes.
Below is the source of one of my webpage:
<%@ LANGUAGE="VBSCRIPT"
%> <!--#include virtual="/common/login_leave.asp"-->
<HTML>
<HEAD>
<object runat="Server" id="nSession" classid="clsid:29131539-2EED-1069-BF5D-00DD011186B7"></object>
<title>Save Leave</title>
<link href="Intranet.css" rel="stylesheet" type="text/css">
</HEAD>
<body bgcolor="#FFDFAA" text="#000000" link="#804040" vlink="#008080" alink="#004080">
<!--#include virtual="/common/main_header.asp"-->
<%
dim lv, rs, empl, msg, rsTypes
dim strEmailMsg, rsLastMinute, dtToday
dtToday= Date()
startdate = CDATE(request("LeaveStartDate") )
enddate = cdate(Request("LeaveEndDate") )
if datediff("d",startdate,enddate) < 0 then
Response.Write("<BR><BR><CENTER>The End Date can not be earlier then the Start Date. Please return to the previous screen to change your dates.</CENTER>")
Response.End end if
reason = request("reason")
dateapplied = "#" & date() & "#"
leavetype = request("leavetype")
if not isempty(Request.form) and session("leaveSaved") = 0 then
set lv = new Leave
'check the dates before saving, exit if invalid if lv.calculateleavedays(startdate,request("startperiod"),enddate,request("endperiod"),session("employeenum")) = -1 then
Response.Write("End date is incorrect, please go back and change.")
Response.end end if
lv.EmployeeID = session("employeenum")
lv.StartDate = request("LeaveStartDate")
lv.EndDate = request("LeaveEndDate")
lv.StartPeriod = request("startperiod")
lv.EndPeriod = request("endperiod")
lv.reason = reason lv.leavetype = leavetype 'set to prevent saving the record more than once when user refreshes the page session("leaveSaved") = lv.AddNew()
rs = getRecordSet(SCONNECTION, "SELECT * from Leave WHERE leaveid = " & session("leaveSaved") )
set rsTypes = getRecordSet(SCONNECTION,"Select * from leavetype")
set empl = new Employee
empl.GetEmployeeInfo(session("employeenum"))
set Supervisor = new Employee
Supervisor.GetEmployeeInfo(empl.Supervisor) set HOD = new Employee
HOD.getEmployeeInfo(empl.HOD) 'send email to supervisor user = empl.Supervisor str = "<HTML><BODY>Dear " & Supervisor.name & ":<BR><BR>" & empl.name & _
" has applied to take leave." &_
"<form name='frmApprove' method='GET' action='" & conURL & "leave_system/approveleave.asp'>" & _
"<table
border = '1' align = 'center'>" & _
"
<tr><td>Leave ID:</td><td>" & rs("leaveid") & "</td></tr>" & _
"
<TR><td>Date of Application</td><td>" & rs("dateapplied") &
"</td></TR>" & _
"
<tr><td>Name</td><td>" & empl.name &
"</td></tr>" & _
"
<tr><td>Employee Number</td><td>" & rs("employeenum") &
"</td></tr>" & _
"
<tr><td>Department</td><td>" & empl.department &
"</td></tr>" & _
"
<tr><td>From</td><td>" & rs("startdate") &" (" & rs("startperiod") & ")" &
"</td><tr><td>To</td><td>" & rs("enddate") & " (" & rs("endperiod") & ")"
& "</td></tr>" & _
"
<tr><td>Total Working Days Applied</td><td>" & rs("totaldays") &
"</td></tr>" & _
"
<tr><td>Reason</td><td>" & rs("reason") &
"</td></tr>" & _
"
<tr><td>Type of Leave</td><td>" & _
"
<SELECT name='type'>" Do while not rsTypes.EOF
if strComp(rsTypes("leavetype"),rs("leavetype"),1) then
str = str & "<option value=" & rsTypes("leavetype") &
" >" & rsTypes("leavetype") &
"</option>"
else str = str & "<option value=" & rsTypes("leavetype") &
" SELECTED>" & rsTypes("leavetype") & "</option>"
end if
rsTypes.movenext Loop str = str & "
</SELECT> </td></tr>" & _
"
<tr><td>Leave Taken to Date</td><td>" & empl.Leavetaken
& "</td></tr>" & _
"
<tr><td>Balance of Leave<BR> At Time of Application</td><td>" & rs("balanceattimeofappl")
& " days</td></tr>" & _
"
<tr><td>Supervisor</td><td>" & supervisor.name
& "</td></tr>" & _
"
<tr><td>Date Signed By supervisor</td><td>" & rs("supervisordate")
& " </td></tr>" & _
"
<tr><td>Head Of Department</td><td>" & HOD.name
& "</td></tr>" & _
"
<tr><td>Date Signed By HOD</td><td>" & rs("dateapproved")
& " </td></tr>" & _
"
<tr><td>Status Of Application</td><td>" & rs("status")
& "</td></tr>" & _
"
<tr><td>Reason for Rejection</td>" & _
"
<td><textarea name='reasonforrejection' cols='40' rows='4'>" & rs("Reasonforrejection")
& "</textarea></td>" & _
"
</tr>" & _
"</table>" str = str & "<table align ='center'>" & _
"<TR><TD align='center' colspan='2'>" & _
"
<input name='leaveid' type='hidden' value=" & session("leaveSaved")
& "></input>" & _
"
<input name='user' type='hidden' value=" & user
& "></input>" & _
"
<input name='submit' value ='Approved' type='submit' >" & _
"
<input name='submit' value ='Rejected' type='submit' >" & _
"
</TD>" & _
"</TR>" & _
"</table></form></BODY><HTML>" sendemail empl.Supervisor, str, "Leave Request"
'***********************email message to Employee to allow Leave Cancellation before approval takes place***********************************
'24 May 2006
'empolyee's email strmsg = "<HTML><BODY>" & _
empl.name & ":<BR>" & _
"Your have apply leave from " &
rs("startdate") & " (" & rs("startperiod") & ") to " & rs("enddate") & " (" & rs("endperiod") & ")." & _
"<BR><BR> To cancel your leave, please click on the below button. <BR><BR>" & _
"<form name='approve' " & _
"action='" & conURL & "Leave_system/cancelleave.asp'" & " method='GET'>" & _
"<input type='hidden' name='leaveid' value=" & session("leaveSaved") & "></input>" & _
"<input type='hidden' name='user' value=" & rs("employeenum") & "></input>" & _
"<input value='Cancel Leave' type='submit' id='submit' name='submit'></input>" & _
"</form></BODY><HTML>" sendemail rs("employeenum"), strmsg, "Leave Application" 'email Employee
set empl = nothing
set Supervisor = nothing
end if
'display leave info
set lv = new Leave
set rs = lv.GetLeaveInfo(session("leaveSaved"))
if not
(rs.EOF and rs.BOF) then
dim employeename
dim Supervisorname
dim HODname
set empl = new Employee
empl.getEmployeeInfo(rs("employeenum"))
employeename = empl.name empl.getEmployeeInfo(rs("Supervisor"))
Supervisorname = empl.name empl.getEmployeeInfo(rs("HOD"))
HODname = empl.name %>
<table border = "1" align = "center">
<tr><td>Leave ID</td><td><%=rs("leaveid")%></td></tr>
<tr><td>Employee Name</td><td><%=employeename%></td></tr>
<tr><td>Start Date</td><td><%=rs("startdate")%></td></tr>
<tr><td>Half Day</td><td><%=rs("StartPeriod")%></td></tr>
<tr><td>End Date</td><td><%=rs("enddate")%></td></tr>
<tr><td>Half Day</td><td><%=rs("EndPeriod")%></td></tr>
<tr><td>Total Working Days Applied</td><td><%=rs("totaldays")%></td></tr>
<tr><td>Reason</td><td><%=rs("reason")%></td></tr>
<tr><td>Date of Application</td><td><%=rs("dateapplied")%></td></tr>
<tr><td>Type of Leave</td><td><%=rs("leavetype")%></td></tr>
<tr><td>Supervisor</td><td><%=Supervisorname%></td></tr>
<tr><td>Date Signed By Supervisor</td><td><%=rs("Supervisordate")%> </td></tr>
<tr><td>Head Of Department (HOD)</td><td><%=HODname%></td></tr>
<tr><td>Date Signed By HOD</td><td><%=rs("dateapproved")%> </td></tr>
<tr><td>Balance of Leave At Time of Application</td><td><%=rs("balanceattimeofappl")%> days</td></tr>
<tr><td>Status Of Application</td><td><%=rs("status")%></td></tr>
<tr><td align="center" colspan = "2"><a href="applyforleave.asp">Back</a> </td></tr>
</table>
<%
end if
function sendemail(emplnum,msg,subject)
dim objNotesSession, objNotesDoc, objNotesDb, objNotesBody
Set objNotesSession = createobject("Notes.NotesSession")
If objNotesSession is Nothing then
msgbox "Could Not create a Session of Notes", 16, "Notes Session Error."
end if
'call objNotesSession.Initializeusingnotesusername("IT-TeknionMalaysia","coffeetime99") set objNotesDB = objNotesSession.GETDATABASE("TFSMDMS1","mail\slim.nsf")
'Create the mail document set objNotesDoc = objNotesDB.CREATEDOCUMENT
'set objNotesDoc.ReplaceItemValue("Form", "Memo") set objNotesBody = objNotesDoc.CreateRichTextItem("BODY")
set curEmployee = new Employee
'Response.Write "employeenum:" & emplnum curEmployee.GetEmployeeInfo(emplnum) if curEmployee.err = ""
then With objNotesDoc
.Form = "Memo"
.subject = subject .Sendto = "seokbee.lim@teknion.com"
.body = msg .postdate = Date
End With
if true then 'true for real email, false if testing
if objnotesdoc.send = false then
Response.write "The email could not be sent, " & _
"please notify your employee on the status of his/her leave application.<BR>" response.write emailmsg.log else Response.write "<center>An email has been sent to notify " & curEmployee.Name & " of the leave application.</center><br>"
end if
else 'response.write("To: " & curEmployee.Name & " <"
& curEmployee.Email & ">" & "<BR>") 'response.write("From: " & emailmsg.From & "<BR>" ) 'Response.Write("Subject: " & emailmsg.Subject & "<BR>") 'Response.Write("Body: <BR>" & emailmsg.HTMLBody & "<BR>") end if
else Response.write(curEmployee.err) Response.End end if
end function
%>
</BODY>
</HTML>
The program stop at
Set objNotesSession = createobject("Notes.NotesSession") in the SendMail function and the error message that I got was:
• Error Type: • Microsoft VBScript runtime (0x800A0046) • Permission denied: 'CreateObject' • /Leave_system/saveleave.asp, line 168 I have granted full permission to everyone to the lotus notes folder and have no more idea where goes wrong that I keep on getting this error message. Appreciate very much if you could assist me on this matter.
Thanks a million in advance.
Thanks & Regards,
Seok Bee