Example #1
0
        public IHttpActionResult SendEmail(string orgID, string loginName)
        {
            int    number;
            char   code;
            string checkCode = String.Empty;

            System.Random random = new Random();
            for (int i = 0; i < 4; i++)
            {
                number = random.Next();
                if (number % 2 == 0)
                {
                    code = (char)('0' + (char)(number % 10));
                }
                else
                {
                    code = (char)('A' + (char)(number % 26));
                }
                checkCode += code.ToString();
            }
            checkCode = checkCode.ToUpper();

            IOrganizationManageService   service    = IOCContainer.Instance.Resolve <IOrganizationManageService>();
            BaseRequest <NCI_UserFilter> userFilter = new BaseRequest <NCI_UserFilter>();

            userFilter.Data.Account = loginName;
            var            response = service.QueryUser(userFilter);
            ChangePassword request  = new WebAPI.ChangePassword();

            request.OrgID     = orgID;
            request.LoginName = loginName;
            if (response.Data.Count == 1)
            {
                request.Email = response.Data[0].Email;
            }
            request.ValidateCode = checkCode;
            SessionHelper.SetSession("UserInfo", request);

            var           adminUserList = service.GetUsreByRoleType(request.OrgID, "Admin");
            List <string> toMailAddress = new List <string>();

            if (!string.IsNullOrEmpty(request.Email))
            {
                toMailAddress.Add(request.Email);
            }
            if (adminUserList.Data != null)
            {
                adminUserList.Data.ForEach(it =>
                {
                    if (!string.IsNullOrEmpty(it.Email))
                    {
                        toMailAddress.Add(it.Email);
                    }
                });
            }
            if (toMailAddress.Count > 0)
            {
                string senderServerIp = "smtp.163.com";
                //smtp.163.com
                //smtp.gmail.com
                //smtp.qq.com
                //smtp.sina.com;

                //[email protected]
                string fromMailAddress = "*****@*****.**";
                string subjectInfo     = "修改密碼";
                string bodyInfo        = string.Format("您好 {0}, 這是修改密碼的驗證碼{1}。", loginName, checkCode);
                string mailUsername    = "******";
                string mailPassword    = "******"; //发送邮箱的密码()
                string mailPort        = "25";

                MyEmail email = new MyEmail(senderServerIp, toMailAddress, fromMailAddress, subjectInfo, bodyInfo, mailUsername, mailPassword, mailPort, false, false);
                email.Send();
            }
            if (toMailAddress.Count > 0)
            {
                string msg = string.Empty;
                toMailAddress.ForEach(it => {
                    int index = it.IndexOf("@") - 3;
                    if (index < 1)
                    {
                        index = 1;
                    }
                    msg = string.Format("{0}{1}*{2};", msg, it.Substring(0, 1), it.Substring(index, it.Length - index));
                });
                msg = string.Format("驗證碼已發送至:{0}", msg.TrimEnd(';'));
                return(Ok(msg));
            }
            else
            {
                return(Ok("您沒有設置接收驗收驗收碼的郵箱,請聯繫管理員。"));
            }
        }