private void btnSendEmail_Click(object sender, System.EventArgs e) { string strSubject = txtsubject.Text; // get the subject string strEmailBodyTemplate = txtEmailBody.Text; // get the email text string strEmailBody = ""; string strEmailAddress; string strEmailToName; string strUsers =""; BusinessServices.Email objEmail = new BusinessServices.Email(); // Get the current users details. BusinessServices.User objUser = new BusinessServices.User(); DataTable dtbCurrentUserDetails = objUser.GetUser(UserContext.UserID); // Setup email header string strEmailFromName = dtbCurrentUserDetails.Rows[0]["FirstName"].ToString() + " " + dtbCurrentUserDetails.Rows[0]["LastName"].ToString(); string strEmailFromEmail = dtbCurrentUserDetails.Rows[0]["Email"].ToString(); // Validate that the user has a valid recipient, subject and body. if (this.txtUserIDs.Text.Length > 0 && strSubject.Length > 0 && strEmailBodyTemplate.Length > 0) { DataTable dtbUsers = objUser.GetEmails(this.txtUserIDs.Text); DataTable dtbEmailAddresses = objUser.GetEmails(this.txtUserIDs.Text); // For each user in the table foreach(DataRow drwEmailAddress in dtbEmailAddresses.Rows) { // get the email address strEmailAddress = drwEmailAddress.ItemArray[3].ToString(); // Get their Name strEmailToName = drwEmailAddress.ItemArray[0].ToString() + " " + drwEmailAddress.ItemArray[1].ToString(); // get userid int userID = 0; Int32.TryParse(drwEmailAddress["userID"].ToString(), out userID); objEmail.SetEmailBody(strEmailBodyTemplate, userID, "", "", "", "", "", "", "", ""); strSubject = objEmail.emailHeaderSub(strSubject); // Attempt to send them an email objEmail.SendEmail(strEmailAddress, strEmailToName, strEmailFromEmail, strEmailFromName, null, null, strSubject, ApplicationSettings.MailServer, UserContext.UserData.OrgID, userID); strUsers += "\n\t" + strEmailToName; } } // send the administrator email string strAdminEmail = GetEmailBody(EmailReportType.Email_Incomplete_CPD_Administrator); objEmail.SetEmailBody(strAdminEmail, UserContext.UserID, "", "", "", strUsers, "", "", "", ""); objEmail.SendEmail(strEmailFromEmail, strEmailFromName, strEmailFromEmail, strEmailFromName, null, null, strSubject, ApplicationSettings.MailServer, UserContext.UserData.OrgID, UserContext.UserID); // done this.plhReportResults.Visible=false; this.plhComplete.Visible=true; }
/// <summary> /// Compiles the list of users to which the email should be sent, /// and attempts to send it to that list + anyone on the CC list /// + the current user. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnSendEmail_Click(object sender, System.EventArgs e) { string strUnitIDs = ""; string strUserIDs = ""; lblError.Text = ""; try { // Get selected units BusinessServices.Unit objUnit = new BusinessServices.Unit(); string[] astrUnitIDs = astrUnitIDs = objUnit.ReturnAdministrableUnitsByUserID(UserContext.UserID, UserContext.UserData.OrgID, trvUnitsSelector.GetSelectedValues()); foreach (string strUnit in astrUnitIDs) { strUnitIDs += strUnit + ","; } if (strUnitIDs.Length > 0) { strUnitIDs = strUnitIDs.Substring(0, strUnitIDs.Length - 1); } // Get users DataTable dtbResults = new Email().GetUsersToEmail(UserContext.UserData.OrgID, strUnitIDs); foreach (DataRow drwUser in dtbResults.Rows) { strUserIDs += drwUser.ItemArray[0].ToString() + ","; } if (strUserIDs.Length > 0) { strUserIDs = strUserIDs.Substring(0, strUserIDs.Length - 1); } // Validate that the user has a valid recipient, subject and body. if (strUserIDs.Length > 0 && this.txtEmailSubject.Text.Length > 0 && this.txtEmailBody.Text.Length > 0) { // Config BusinessServices.AppConfig objAppConfig = new BusinessServices.AppConfig(); DataTable dtbAppConfig = objAppConfig.GetList(); this.lblError.Text = ""; // Email setup BusinessServices.User objUser = new BusinessServices.User(); DataTable dtbCurrentUserDetails = objUser.GetUser(UserContext.UserID); string strEmailFromName = dtbCurrentUserDetails.Rows[0]["FirstName"].ToString() + " " + dtbCurrentUserDetails.Rows[0]["LastName"].ToString(); string strEmailFromEmail = dtbCurrentUserDetails.Rows[0]["Email"].ToString(); string strEmailSubject = this.txtEmailSubject.Text; string strUsers = "\n\nSent To:"; BusinessServices.Email objEmail = new BusinessServices.Email(); // target users string strEmailToName = ""; string strEmailToEmail = ""; DataTable dtbEmailAddresses = objUser.GetEmails(strUserIDs); foreach (DataRow drwEmailAddress in dtbEmailAddresses.Rows) { strEmailToEmail = drwEmailAddress.ItemArray[3].ToString(); strEmailToName = drwEmailAddress.ItemArray[0].ToString() + " " + drwEmailAddress.ItemArray[1].ToString(); int intUserId = Int32.Parse(drwEmailAddress.ItemArray[1].ToString()); objEmail.SetEmailBody(this.txtEmailBody.Text, intUserId, "", "", "", "", "", "", "", ""); strEmailSubject = objEmail.emailHeaderSub(strEmailSubject); objEmail.SendEmail(strEmailToEmail, strEmailToName, strEmailFromEmail, strEmailFromName, null, null, strEmailSubject, ApplicationSettings.MailServer, UserContext.UserData.OrgID, intUserId); // accumulate user list to append to current user email strUsers += "\n\t" + strEmailToName; } // CC list. string strEmailCCName = ""; strUsers += "\n\nCC:"; foreach (string addr in this.txtCC.Text.Split(new char[] { ',', ';' })) { string strEmailCCEmail = addr.Trim(); if (strEmailCCEmail != "") { try { objEmail.SendEmail(strEmailCCEmail, strEmailCCName, strEmailFromEmail, strEmailFromName, null, null, strEmailSubject, ApplicationSettings.MailServer, UserContext.UserData.OrgID, 0); strUsers += "\n\t" + strEmailCCEmail; } catch (Exception) { objEmail.setCCSendError(strEmailCCEmail); objEmail.SendEmail(strEmailFromEmail, strEmailFromName, strEmailFromEmail, strEmailFromName, null, null, "Error sending mail to CC recipient", ApplicationSettings.MailServer, UserContext.UserData.OrgID, UserContext.UserID); } } } // copy to Current user objEmail.setUserCopyEmailBody(this.txtEmailBody.Text + strUsers); objEmail.SendEmail(strEmailFromEmail, strEmailFromName, strEmailFromEmail, strEmailFromName, null, null, strEmailSubject, ApplicationSettings.MailServer, UserContext.UserData.OrgID, UserContext.UserID); this.plhEditEmail.Visible = false; this.plhComplete.Visible = true; } else { lblError.Text = ResourceManager.GetString("lblError.OneRecip"); //"To send an email you must have at least one recipient, an email subject and an email body."; this.lblError.CssClass = "WarningMessage"; } } catch (Exception ex) { //Catch and throw error ErrorLog objError = new ErrorLog(ex, ErrorLevel.High, "EmailUsers.aspx.cs", "btnSendEmail_Click", "General error occurred attempting to send email"); throw (ex); } }