Пример #1
0
        private void SendEmail(string To, string Name, Send_Mail SM)
        {
            try
            {
                ProAccEntities db  = new ProAccEntities();
                MailMessage    msg = new MailMessage();
                if (SM.Q_UserID > 0)
                {
                    //To = "*****@*****.**";
                    //Name = "Akhil";
                    SM.priority = true;
                    string Toaddresses = Mail_ToAddress;
                    string CCAddress   = Mail_CCAddress;
                    foreach (var address in Toaddresses.Split(new[] { ";" }, StringSplitOptions.RemoveEmptyEntries))
                    {
                        msg.To.Add(address);
                    }

                    foreach (var CCAdd in CCAddress.Split(new[] { ";" }, StringSplitOptions.RemoveEmptyEntries))
                    {
                        msg.CC.Add(CCAdd);
                    }
                }
                else if (SM.subject == "IssueTrack")
                {
                    MailAddress toAddress = new MailAddress(To, Name);
                    msg.To.Add(toAddress);

                    var RoleId    = db.RoleMasters.Where(x => x.RoleName == "Project Manager").FirstOrDefault().RoleId;
                    var managerid = (from PM in db.ProjectMonitors
                                     join I in db.Instances on PM.InstanceID equals I.Instance_id
                                     join P in db.Projects on I.Project_ID equals P.Project_Id
                                     select P.ProjectManager_Id).FirstOrDefault();
                    var cc = db.UserMasters.Where(x => x.isActive == true && x.RoleID == RoleId && x.UserId == managerid).FirstOrDefault().EMail;
                    msg.CC.Add(cc);
                    string CCAddress = Mail_CCAddress;
                    foreach (var CCAdd in CCAddress.Split(new[] { ";" }, StringSplitOptions.RemoveEmptyEntries))
                    {
                        msg.CC.Add(CCAdd);
                    }
                }
                else if (SM.subject == "ProAcc Survey Mail")
                {
                    MailAddress toAddress = new MailAddress(To, Name);
                    msg.To.Add(toAddress);

                    string CCAddress = Mail_CCAddress;
                    foreach (var CCAdd in CCAddress.Split(new[] { ";" }, StringSplitOptions.RemoveEmptyEntries))
                    {
                        msg.CC.Add(CCAdd);
                    }
                }
                else
                {
                    MailAddress toAddress = new MailAddress(To, Name);
                    msg.To.Add(toAddress);
                }

                MailAddress fromAddress = new MailAddress(_Base.Decrypt(WebConfigurationManager.AppSettings["Mail_UserName"]));

                msg.From = fromAddress;

                msg.Subject         = SM.subject;
                msg.Body            = SM.body;
                msg.IsBodyHtml      = true;
                msg.HeadersEncoding = Encoding.UTF8;
                msg.SubjectEncoding = Encoding.UTF8;
                msg.BodyEncoding    = Encoding.UTF8;
                if (SM.priority)
                {
                    msg.Priority = MailPriority.High;
                }

                if (SM.Q_UserID > 0)
                {
                    var fs = new FileStream(OutputPath_pdf + SM.Q_UserID + ".pdf", FileMode.Open);
                    msg.Attachments.Add(new System.Net.Mail.Attachment(fs, "Questionnaire.pdf", "application/pdf"));
                }
                //Thread.Sleep(1000);

                SmtpClient client = new SmtpClient(serverName, port);
                client.DeliveryMethod = SmtpDeliveryMethod.Network;
                client.EnableSsl      = true;
                //Convert.ToBoolean(WebConfigurationManager.AppSettings["SmtpSsl"]);
                client.UseDefaultCredentials = false;

                NetworkCredential smtpUserInfo = new NetworkCredential(_Base.Decrypt(userName), _Base.Decrypt(password));
                client.Credentials = smtpUserInfo;
                // ProAccEntities db = new ProAccEntities();
                client.Credentials = smtpUserInfo;



                var mm = db.MailMasters.Where(x => x.Running_ID == SM.ID).FirstOrDefault().MailStatus;

                if (mm == false)
                {
                    client.Send(msg);
                    _Log.createLog(SM.ID + "---> Email To->" + To.ToString());
                    _Base.UpdateMailList(SM.ID);
                }
                client.Dispose();
                msg.Dispose();
            }
            catch (Exception ex)
            {
                _Log.createLog(ex, "-->SendEmail" + ex.Message.ToString());
            }
        }