Example #1
0
		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;
		}
Example #2
0
        /// <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);
            }
        }