コード例 #1
0
        public ActionResult Sendemail(EmailTemplate obj)
        {
            try
            {
                int prospectList = 0;

                string prospectListvalue = Request.Form["ddlCityCircle"];

                if (prospectListvalue != "")
                {
                    prospectList = Convert.ToInt32(Request.Form["ddlCityCircle"]);
                }

                string BizzTYpe, titleStandard;

                if (Request.Form["ddlbiztype"] == "")
                {
                    BizzTYpe = "";
                }
                else
                {
                    BizzTYpe = Request.Form["ddlbiztype"];
                }

                if (Request.Form["ddltitle"] == "")
                {
                    titleStandard = "";
                }
                else
                {
                    titleStandard = Request.Form["ddltitle"];
                }

                string TemplateId = Request.Form["ddltemplate"];

                bool enablessl = false;

                if (Request.Form["ddlenablessl"] == "1")
                {
                    enablessl = true;
                }
                else
                {
                    enablessl = false;
                }

                int intmailCount = 0;

                var templatedata = context.SPgetemailtemplatebytemplateid(Convert.ToInt32(TemplateId)).FirstOrDefault();

                templatedata.EmailBody = obj.EmailBody;

                string ImageName = Request.Form["hiddenImageName"].ToString();

                // Logic starts here for Batch email processing [SHIVAM]
                string EmailBatchVal   = Request.Form["EmailBatchVal"].ToString();
                string BatchEmailCount = Request.Form["BatchEmailCount"].ToString();

                int start_index = 0;
                int end_index   = 0;

                if (!string.IsNullOrEmpty(EmailBatchVal) && !string.IsNullOrEmpty(BatchEmailCount))
                {
                    string lastBatchString       = EmailBatchVal.Substring(EmailBatchVal.Length - 1);
                    int    BatchNumber           = Convert.ToInt32(lastBatchString);
                    int    BatchEmailCountNumber = Convert.ToInt32(BatchEmailCount);

                    for (int i = 0; i < BatchNumber; i++)
                    {
                        if (i == 0)
                        {
                            start_index = start_index + 0;

                            if (BatchEmailCountNumber < 500)
                            {
                                if (BatchNumber - i == 1)
                                {
                                    end_index = BatchEmailCountNumber;
                                }
                                else
                                {
                                    end_index = 500;
                                }
                            }
                            else
                            {
                                end_index = end_index + 500;
                            }
                        }
                        else
                        {
                            if (BatchNumber - i == 1)
                            {
                                start_index = end_index;
                                end_index   = start_index + BatchEmailCountNumber;
                            }
                            else
                            {
                                start_index = end_index;
                                end_index   = 500 * (i + 1);
                            }
                        }
                    }

                    end_index = BatchEmailCountNumber;

                    if (BizzTYpe == "")
                    {
                        var contact_details = context.SPGetDataForSendingEmailWithoutBizType(prospectList, titleStandard, start_index, end_index).ToList();

                        foreach (var item in contact_details)
                        {
                            try
                            {
                                int value = sendemailcontact(item.contactfullname, item.contactemail, Request.Form["txtsubject"], templatedata.EmailBody, Request.Form["txtemail"], Request.Form["txtservername"], Request.Form["txtpassword"], Request.Form["txtportno"], enablessl, ImageName);

                                if (value == 1)
                                {
                                    intmailCount++;
                                }
                            }
                            catch (Exception ex)
                            {
                                continue;
                            }
                        }

                        TempData["Message"] = "Total Mail sent : " + intmailCount;
                    }
                    else
                    {
                        var contact_details = context.SPGetDataForSendingEmailWithBizType(prospectList, titleStandard, BizzTYpe, start_index, end_index).ToList();

                        foreach (var item in contact_details)
                        {
                            try
                            {
                                int value = sendemailcontact(item.contactfullname, item.contactemail, Request.Form["txtsubject"], templatedata.EmailBody, Request.Form["txtemail"], Request.Form["txtservername"], Request.Form["txtpassword"], Request.Form["txtportno"], enablessl, ImageName);

                                if (value == 1)
                                {
                                    intmailCount++;
                                }
                            }
                            catch (Exception ex)
                            {
                                continue;
                            }
                        }

                        TempData["Message"] = "Total Mail sent : " + intmailCount;
                    }
                }
                else
                {
                    TempData["Message"] = "Error";
                }
                // Logic ends here for Batch email processing [SHIVAM]

                TempData["Message"] = "Total Mail sent : " + intmailCount;
            }
            catch (Exception ex)
            {
                TempData["Message"] = "Error";
                cm.ErrorExceptionLogingByService(ex.ToString(), "EmailSendFrom" + ":" + new StackTrace().GetFrame(0).GetMethod().Name, "Sendemail", "NA", "NA", "NA", "WEB");
            }

            return(RedirectToAction("Index"));
        }