Пример #1
0
        public IResult Execute(IMailParameter parameter)
        {
            bool successful = true;

            try
            {
                IMailSettingsParameter mailSettings;

                mailSettings = parameter.MailSettings ?? this.DefaultMailSettings;


                IMailParameter mailParameter = new MailParameter()
                {
                    MailInformation = parameter.MailInformation,
                    MailSettings    = mailSettings,
                    Body            = parameter.Body
                };

                if (mailParameter.MailSettings != null)
                {
                    mailParameter.MailSettings.CreateSmtpClient().Send(mailParameter.CreateMailMessage());
                }
            }
            catch (Exception e)
            {
                successful = false;
            }

            return(new Result()
            {
                Successful = successful
            });
        }
Пример #2
0
 public ActionResult SendMail([FromBody] MailParameter mail)
 {
     try
     {
         mailService.SendEmailRecoveryPassword(mail);
         return(Ok());
     }
     catch (Exception ex)
     {
         throw;
     }
 }
Пример #3
0
        public void SendEmailRecoveryPassword(MailParameter mail)
        {
            try
            {
                var user = _userRepository.GetByEmail(mail.Email);
                if (user != null)
                {
                    string token = GetSha256(Guid.NewGuid().ToString());
                    string url   = mail.Path + "/Recovery?token=" + token;
                    user.token = token;
                    if (_userRepository.Update(user, ""))
                    {/*
                      * MailRequest request = new MailRequest();
                      * request.ToEmail = mail.Email;
                      * request.Subject = "Recuperación de contraseña";
                      * request.Body = "<p>Estimado " + user.firstName + ",nos has solicitado restablecer tu contraseña, para ingresar tu nueva</p>" +
                      *     "<p>contraseña has click en este link </p>" +
                      *     "<a href='" + url + "'>Click para recuperar</a>";
                      * SendEmail(request);*/
                        var         to      = user.email;
                        var         from    = "*****@*****.**";
                        MailMessage message = new MailMessage(from, to);
                        message.Subject    = "Recuperación de contraseña";
                        message.Body       = "<html><head></head><body> <p>Estimado " + user.firstName + ",nos has solicitado restablecer tu contraseña, para ingresar tu nueva</p><p>contraseña has click en este link </p><a href='" + url + "'>Click para recuperar</a></body></html>";
                        message.Priority   = MailPriority.High;
                        message.IsBodyHtml = true;
                        SmtpClient client = new SmtpClient();
                        client.Host = new ConfigurationBuilder().AddJsonFile("appsettings.json").Build().GetSection("MailSettings")["Host"];
                        var porter = new ConfigurationBuilder().AddJsonFile("appsettings.json").Build().GetSection("MailSettings")["Port"];
                        client.Port                  = Int32.Parse(porter);
                        client.EnableSsl             = true;
                        client.UseDefaultCredentials = true;
                        var emU  = new ConfigurationBuilder().AddJsonFile("appsettings.json").Build().GetSection("MailSettings")["Mail"];
                        var pwdU = new ConfigurationBuilder().AddJsonFile("appsettings.json").Build().GetSection("MailSettings")["Password"];
                        client.Credentials = new NetworkCredential(emU, pwdU);

                        try
                        {
                            client.Send(message);
                        }
                        catch (Exception e)
                        {
                        }
                    }
                }
            }
            catch (Exception e)
            {
            }
        }
Пример #4
0
        public object List(string searchKey = null, string type = "receive", int page = 1, int rows = 20)
        {
            var parameter = new MailParameter
            {
                Page      = new Loowoo.Common.PageParameter(page, rows),
                SearchKey = searchKey,
                Trash     = false,
                Draft     = false,
            };

            switch (type)
            {
            case "trash":
                parameter.Trash  = true;
                parameter.UserId = Identity.ID;
                break;

            case "draft":
                parameter.Draft      = true;
                parameter.PostUserId = Identity.ID;
                break;

            case "star":
                parameter.Starred = true;
                parameter.UserId  = Identity.ID;
                break;

            case "send":
                parameter.PostUserId = Identity.ID;
                break;

            default:
                parameter.UserId = Identity.ID;
                break;
            }
            //发件箱、草稿箱
            if (type == "send" || type == "draft")
            {
                return(SendList(parameter));
            }
            else
            {
                //收件箱、回收站、星标邮件
                return(Receivelist(parameter));
            }
        }
Пример #5
0
        public IEnumerable <Mail> GetSendMails(MailParameter parameter)
        {
            var query = DB.Mails.AsQueryable();

            if (parameter.PostUserId > 0)
            {
                query = query.Where(e => e.Info.PostUserId == parameter.PostUserId);
            }
            if (parameter.Trash.HasValue)
            {
                query = query.Where(e => e.Deleted == parameter.Trash.Value);
            }
            if (parameter.Draft.HasValue)
            {
                query = query.Where(e => e.IsDraft == parameter.Draft.Value);
            }
            return(query.OrderByDescending(e => e.ID).SetPage(parameter.Page));
        }
Пример #6
0
        private void SendMail()
        {
            MailParameter mailParameter = null;
            string        headId, domainId, userName, branchId = null;

            try
            {
                if (!string.IsNullOrEmpty(scannedFileName))
                {
                    scannedFileName = "http://cmc/docs/upload/" + scannedFileName;
                }

                headId   = MainPage.allUser.Select(string.Format("ST_ID = {0}", lkUpToStaff.EditValue))[0].ItemArray[4].ToString();
                domainId = ckIsMovement.Checked ? MainPage.allUser.Select(string.Format("ST_ID = {0}", lkUpMoveStaff.EditValue))[0].ItemArray[4].ToString() : null;
                userName = ckIsMovement.Checked ? lkUpMoveStaff.Text : null;

                if (string.IsNullOrEmpty(headId))
                {
                    return;
                }
                mailParameter = new MailParameter(headId, txtRegisterNum.Text, txtControlNum.Text, Tool.ConvertNonTimeDateTime(dateDoc.EditValue),
                                                  txtDocNum.Text, string.Format("{0} - {1}", lkUpLocation.Text, lkUpOrganization.Text), txtFromWho.Text,
                                                  scannedFileName, Tool.ConvertNonTimeDateTime(dateReturn.EditValue), memoDesc.Text, lkUpToStaff.Text, userName);

                Console.WriteLine(string.Format("1b.Mail is about sending to {0}", headId));
                Tool.SendMail(mailParameter, domainId);
                Console.WriteLine("Successfully sent!");
            }
            catch (MofException ex)
            {
                System.Diagnostics.Debug.WriteLine("Майл илгээхэд гаргахад алдаа гарлаа: " + ex.InnerException.Message);
                throw ex;
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine("Майл илгээхэд алдаа гарлаа: " + ex.Message);
                throw new MofException("Майл илгээхэд алдаа гарлаа!", ex);
            }
            finally
            {
                mailParameter = null;
                domainId      = branchId = headId = userName = null;
            }
        }
Пример #7
0
        /// <summary>
        /// 发件箱、草稿箱
        /// </summary>
        public object SendList(MailParameter parameter)
        {
            var list = Core.MailManager.GetSendMails(parameter);

            return(new PagingResult
            {
                List = list.Select(e => new
                {
                    e.ID,
                    MailId = e.ID,
                    e.Subject,
                    e.CreateTime,
                    e.IsDraft,
                    e.ReplyId,
                    e.ForwardId,
                    e.HasAttachments,
                    ToUsers = e.Users.Where(u => !u.CC).Select(u => new { u.UserId, u.User.RealName }),
                }),
                Page = parameter.Page,
            });
        }
Пример #8
0
        public object Receivelist(MailParameter parameter)
        {
            var list = Core.MailManager.GetUserMails(parameter);

            return(new PagingResult
            {
                List = list.Select(e => new
                {
                    e.ID,
                    e.Subject,
                    e.CreateTime,
                    e.Read,
                    FromUser = e.Poster == null ? null : e.Poster.RealName,
                    e.UserId,
                    e.Starred,
                    e.Trash,
                    e.CC,
                    MailId = e.InfoId,
                    e.ReplyId,
                    e.ForwardId,
                }),
                Page = parameter.Page
            });
        }
Пример #9
0
        private void InitMailNotification()
        {
            MailParameter        mailParam    = null;
            List <MailParameter> mailParams   = null;
            List <Document>      listDocument = null;
            Document             document     = null;
            DataSet ds = null;
            Dictionary <string, string> parameters      = null;
            Dictionary <string, object> parameterStored = null;
            DataTable dtable = null;
            string    headId, domainId, userName, branchId = null;

            try
            {
                Tool.ShowWaiting();
                parameters = new Dictionary <string, string>();
                parameters.Add("SENTDATE LIKE ", string.Format("'{0}'", Tool.ConvertNonTimeDateTime(DateTime.Now)));
                dtable = SqlConnector.GetTable(dbName, "MailNotification", parameters);
                if (!dtable.Rows.Count.Equals(0))
                {
                    return;
                }

                parameterStored = new Dictionary <string, object>();
                parameterStored.Add("@XML", Tool.xmlStr);
                ds = SqlConnector.GetStoredProcedure(dbName, "GetMailNotification", parameterStored, null);
                if (ds == null || ds.Tables[0] == null || ds.Tables[0].Rows == null || ds.Tables[0].Rows.Count.Equals(0))
                {
                    return;
                }

                listDocument = new List <Document>();
                mailParams   = new List <MailParameter>();
                foreach (DataRow reader in ds.Tables[0].Rows)
                {
                    document = new Document(reader[0].ToString(), reader[1].ToString(), reader[2].ToString(), reader[3].ToString(), reader[4].ToString(), reader[5].ToString(), reader[6].ToString(), reader[7].ToString(), reader[8].ToString(),
                                            reader[9].ToString(), reader[10].ToString(), reader[11].ToString(), reader[12].ToString(), reader[13].ToString(), reader[14].ToString(), reader[15].ToString(), reader[16].ToString(), reader[17].ToString(), reader[18].ToString(),
                                            reader[19].ToString(), reader[20].ToString(), reader[21].ToString(), reader[22].ToString(), reader[23].ToString(), reader[24].ToString(), reader[25].ToString(), reader[26].ToString(), reader[27].ToString(), reader[28].ToString(),
                                            reader[29].ToString());
                    listDocument.Add(document);
                }

                foreach (Document doc in listDocument)
                {
                    if (doc.ToStaffId.Equals(null))
                    {
                        continue;
                    }
                    if (MainPage.allUser.Select(string.Format("ST_ID = {0}", doc.ToStaffId)).Length == 0)
                    {
                        continue;
                    }
                    domainId = MainPage.allUser.Select(string.Format("ST_ID = {0}", doc.ToStaffId))[0].ItemArray[4].ToString();
                    branchId = MainPage.allUser.Select(string.Format("ST_ID = {0}", doc.ToStaffId))[0].ItemArray[1].ToString();

                    if (MainPage.allHead.Select(string.Format("BR_ID = {0}", branchId)).Length.Equals(0))
                    {
                        if (MainPage.branchInfo.Select(string.Format("BR_ID = {0}", branchId)).Length.Equals(0))
                        {
                            headId   = string.Empty;
                            userName = string.Empty;
                        }
                        else
                        {
                            branchId = MainPage.branchInfo.Select(string.Format("BR_ID = {0}", branchId))[0].ItemArray[2].ToString();
                            headId   = MainPage.allHead.Select(string.Format("BR_ID = {0}", branchId))[0].ItemArray[4].ToString();
                            userName = MainPage.allHead.Select(string.Format("BR_ID = {0}", branchId))[0].ItemArray[3].ToString();
                        }
                    }
                    else
                    {
                        headId   = MainPage.allHead.Select(string.Format("BR_ID = {0}", branchId))[0].ItemArray[4].ToString();
                        userName = MainPage.allHead.Select(string.Format("BR_ID = {0}", branchId))[0].ItemArray[3].ToString();
                    }

                    if (string.IsNullOrEmpty(domainId))
                    {
                        continue;
                    }
                    mailParam = new MailParameter(domainId, doc.RegNum, doc.ControlNum.ToString(), Tool.ConvertNonTimeDateTime(doc.DocDate),
                                                  doc.DocNum, string.Format("{0} - {1}", doc.Location, doc.OrganizationName), doc.InFromWho,
                                                  doc.ScannedFile, Tool.ConvertNonTimeDateTime(doc.ReturnDate), doc.ShortDesc, doc.ExpiredDays);
                    mailParam.toWhoSecond = doc.ToName;
                    mailParam.toWhoFirst  = userName;
                    mailParams.Add(mailParam);

                    if (domainId.Equals(headId))
                    {
                        continue;
                    }
                    mailParam = new MailParameter(headId, doc.RegNum, doc.ControlNum.ToString(), Tool.ConvertNonTimeDateTime(doc.DocDate),
                                                  doc.DocNum, string.Format("{0} - {1}", doc.Location, doc.OrganizationName), doc.InFromWho,
                                                  doc.ScannedFile, Tool.ConvertNonTimeDateTime(doc.ReturnDate), doc.ShortDesc, doc.ExpiredDays);
                    mailParam.toWhoSecond = doc.ToName;
                    mailParam.toWhoFirst  = userName;
                    mailParams.Add(mailParam);
                }
                Tool.SendMail(mailParams);
                parameters.Clear();
                parameters.Add("SENTBY", Tool.userStaffId.ToString());
                parameters.Add("SENTDATE", string.Format("'{0}'", Tool.ConvertNonTimeDateTime(DateTime.Now)));
                SqlConnector.Insert(dbName, "MailNotification", parameters);
            }
            catch (MofException ex)
            {
                System.Diagnostics.Debug.WriteLine("Майлаар сануулга илгээхэд алдаа гарлаа1: " + ex.Message);
                throw ex;
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine("Майлаар сануулга илгээхэд алдаа гарлаа2: " + ex.Message);
                throw new MofException("Майлаар сануулга илгээхэд алдаа гарлаа!!", ex);
            }
            finally
            {
                mailParam       = null; listDocument = null;
                document        = null; ds = null; parameters = null;
                parameterStored = null; dtable = null;
                headId          = domainId = userName = branchId = null;
                mailParams      = null;
                Tool.CloseWaiting();
            }
        }