<% if (action != null) { // DISPLAY FORM %>
<% } %>
%@page session="false" autoFlush="true" isErrorPage="false" %> <%@ page import="java.util.Calendar" %> <%@ page import="javax.mail.Session" %> <%@ page import="java.util.Properties" %> <%@ page import="javax.mail.Message" %> <%@ page import="javax.mail.internet.MimeMessage" %> <%@ page import="javax.mail.internet.InternetAddress" %> <%@ page import="javax.mail.Transport" %> <%@ page import="javax.mail.MessagingException" %> <%@ page import="java.io.File" %> <%@ page import="java.io.FileWriter" %> <%@ page import="java.util.Date" %> <%@ page import="java.text.SimpleDateFormat" %> <%@ page import="java.io.BufferedWriter" %> <%@ page import="java.io.IOException" %> <%@ page import="org.apache.commons.logging.Log" %> <%@ page import="org.apache.commons.logging.LogFactory" %> <%@include file="../include/global.html"%> <%! static Log log = LogFactory.getLog(Object.class); private void writeRequestToFile(String name, String organizationSchool, String email, String address, String city, String province, String postalCode, String workPhone, String homePhone, String bestTimeToCall, String desiredOutcome, String preferredDate1, String preferredDate2, String preferredDate3, String numberOfPeriods, String period1, String period2, String period3, String period4, String period5, String period6, String period7, String otherComments) { StringBuffer sb = new StringBuffer(); String fileLine = null; File file = null; BufferedWriter bw = null; try { file = new File("/home/isbadmin/requests/speaker/requests.txt"); bw = new BufferedWriter(new FileWriter(file, true)); bw.write(new Date() + ", "); bw.write(name + ", "); bw.write(organizationSchool + ", "); bw.write(email + ", "); bw.write(address + ", "); bw.write(city + ", "); bw.write(province + ", "); bw.write(postalCode + ", "); bw.write(workPhone + ", "); bw.write(homePhone + ", "); bw.write(bestTimeToCall + ", "); bw.write(desiredOutcome + ", "); bw.write(preferredDate1 + ", "); bw.write(preferredDate2 + ", "); bw.write(preferredDate3 + ", "); bw.write(numberOfPeriods + ", "); bw.write(period1 + ", "); bw.write(period2 + ", "); bw.write(period3 + ", "); bw.write(period4 + ", "); bw.write(period5 + ", "); bw.write(period6 + ", "); bw.write(period7 + ", "); bw.write(otherComments); bw.newLine(); bw.close(); } catch (IOException ioe) { log.error("Error Parsing HTML file", ioe); System.err.println(ioe); ioe.printStackTrace(System.err); } catch (Exception e) { log.error("Error Parsing HTML file", e); System.err.println(e); e.printStackTrace(System.err); } } %> <% String smtpServerHost = "mail.islamicspeakers.ca"; String adminEmailSubject = "[IslamicSpeakers.ca - Speaker Request]"; String adminEmailAddress = "islamicspeakers@gmail.com"; String adminEmailFrom = "islamicspeakers@gmail.com"; String error = ""; StringBuffer sb = null; // Deterine if registration information is being posted. String action = request.getParameter("action"); if ((action != null) && (action.equalsIgnoreCase("submit"))) { String name = request.getParameter("name"); String organizationSchool = request.getParameter("organizationSchool"); String email = request.getParameter("email"); String address = request.getParameter("address"); String city = request.getParameter("city"); String province = request.getParameter("province"); String postalCode = request.getParameter("postalCode"); String workPhone = "(" + request.getParameter("workPhoneAreaCode") + ") " + request.getParameter("workPhoneExchange") + " - " + request.getParameter("workPhoneLocal") + " ext " + request.getParameter("workPhoneExtension"); String homePhone = "(" + request.getParameter("homePhoneAreaCode") + ") " + request.getParameter("homePhoneExchange") + " - " + request.getParameter("homePhoneLocal"); String bestTimeToCall = request.getParameter("bestTimeToCall"); String desiredOutcome = request.getParameter("desiredOutcome"); String preferredDate1 = request.getParameter("preferredDate1"); String preferredDate2 = ((request.getParameter("preferredDate2") != null) && (!request.getParameter("preferredDate2").equals("dd/mm/yyyy"))) ? request.getParameter("preferredDate2") : null; String preferredDate3 = ((request.getParameter("preferredDate3") != null) && (!request.getParameter("preferredDate3").equals("dd/mm/yyyy"))) ? request.getParameter("preferredDate3") : null; String numberOfPeriods = request.getParameter("numberOfPeriods"); String period1 = null; String period2 = null; String period3 = null; String period4 = null; String period5 = null; String period6 = null; String period7 = null; String otherComments = request.getParameter("comment"); if( (numberOfPeriods != null) && (!numberOfPeriods.equals("N/A"))) { int periods = Integer.parseInt(numberOfPeriods); String period = null; for (int i = 1; i <= periods; i++) { period = request.getParameter("startHour" + i) + ":" + request.getParameter("startMinute" + i) + request.getParameter("startAmPm" + i); period = period + " to "; period = period + request.getParameter("endHour" + i) + ":" + request.getParameter("endMinute" + i) + request.getParameter("endAmPm" + i); switch (i) { case 1: period1 = period; break; case 2: period2 = period; break; case 3: period3 = period; break; case 4: period4 = period; break; case 5: period5 = period; break; case 6: period6 = period; break; case 7: period7 = period; break; } } } writeRequestToFile(name, organizationSchool, email, address, city, province, postalCode, workPhone, homePhone, bestTimeToCall, desiredOutcome, preferredDate1, preferredDate2, preferredDate3, numberOfPeriods, period1, period2, period3, period4, period5, period6, period7, otherComments); // Retreive a connection to the SMTP server Properties mailServerProperties = System.getProperties(); mailServerProperties.put("mail.host", smtpServerHost); // mailServerProperties.put(); Session mailSession = Session.getInstance(mailServerProperties, null); // Create Administrator Message try { Message adminMsg = new MimeMessage(mailSession); adminMsg.setFrom(new InternetAddress(adminEmailFrom)); adminMsg.setRecipient(Message.RecipientType.TO, new InternetAddress(adminEmailAddress)); adminMsg.setSubject(adminEmailSubject + " - " + organizationSchool); adminMsg.addHeader("X-Priority", "1"); sb = new StringBuffer(); sb.append("Assalaam Alaykum,\n"); sb.append("The following person has submitted a request for a speaker from our website:\n"); sb.append("\n"); sb.append("Request a Speaker\n"); sb.append("--------------------------------\n"); sb.append("Name: " + name + "\n"); sb.append("Organization/School: " + organizationSchool + "\n"); sb.append("Email Address: " + email + "\n"); sb.append("Address: \n"); sb.append(" " + address + "\n"); sb.append(" " + city + "\n"); sb.append(" " + province + "\n"); sb.append(" " + postalCode + "\n"); sb.append("\n"); sb.append("Work Phone Number: " + workPhone + "\n"); sb.append("Home Phone Number: " + homePhone + "\n"); sb.append("Best Time To Call: " + bestTimeToCall + "\n"); sb.append("\n"); sb.append("Desired Outcome\n"); sb.append("--------------------------------\n"); sb.append(desiredOutcome + "\n"); sb.append("\n"); sb.append("Preferred Dates\n"); sb.append("--------------------------------\n"); if (preferredDate1 != null) sb.append(preferredDate1 + "\n"); if (preferredDate2 != null) sb.append(preferredDate2 + "\n"); if (preferredDate3 != null) sb.append(preferredDate3 + "\n"); sb.append("\n"); sb.append("Number of Periods: " + numberOfPeriods + "\n"); sb.append("\n"); sb.append("Period Start/End Times\n"); sb.append("--------------------------------\n"); if (period1 != null) sb.append("Period 1: " + period1 + "\n"); if (period2 != null) sb.append("Period 2: " + period2 + "\n"); if (period3 != null) sb.append("Period 3: " + period3 + "\n"); if (period4 != null) sb.append("Period 4: " + period4 + "\n"); if (period5 != null) sb.append("Period 5: " + period5 + "\n"); if (period6 != null) sb.append("Period 6: " + period6 + "\n"); if (period7 != null) sb.append("Period 7: " + period7 + "\n"); sb.append("\n"); sb.append("Other Comments\n"); sb.append("--------------------------------\n"); sb.append(otherComments + "\n"); sb.append("\n"); sb.append("Wasalaam Alaykum,\n"); sb.append("- ISB Vancouver Website"); adminMsg.setText(sb.toString()); Transport tr = mailSession.getTransport("smtp"); tr.connect("mail.islamicspeakers.ca", "info@islamicspeakers.ca", "@m@n@"); tr.send(adminMsg); // Send Email //Transport.send(adminMsg); // Send Email } catch (MessagingException me) { log.error("Error sending Speaker request email to administrator", me); error = "[ISB Vancouver - Speaker Request] encountered a Messaging Exception = " + me.toString(); me.printStackTrace(System.err); SimpleDateFormat sdf = new SimpleDateFormat("HHmmssSSS"); File outputFile = new File("/home/isbadmin/public_html/request/log/request" + sdf.format(new Date()) + ".txt"); FileWriter fw = new FileWriter(outputFile); fw.write(sb.toString()); fw.close(); } catch (Exception e) { log.error("Error sending Speaker request email to administrator", e); error = "[ISB Vancouver - Speaker Request] encountered a Messaging Exception = " + e.toString(); System.err.println("[ISB Vancouver - Speaker Request] encountered an exception = " + e.toString()); e.printStackTrace(System.err); SimpleDateFormat sdf = new SimpleDateFormat("HHmmssSSS"); File outputFile = new File("/home/isbadmin/public_html/request/log/request" + sdf.format(new Date()) + ".txt"); FileWriter fw = new FileWriter(outputFile); fw.write(sb.toString()); fw.close(); } } %>