예제 #1
0
        public void TestMailboxUnavailable()
        {
            MailVerify mailVerify = new MailVerify();

            ValidationStatus result = mailVerify.Validate("*****@*****.**");

            Assert.AreEqual(ValidationStatus.MailboxUnavailable, result);
        }
예제 #2
0
        private void btnValidate_Click(object sender, EventArgs e)
        {
            MailVerify mailVerify = new MailVerify();

            if (!string.IsNullOrEmpty(txtEmail.Text))
            {
                MessageBox.Show(mailVerify.Validate(txtEmail.Text).ToString());
            }
        }
예제 #3
0
        public ActionResult ForgetPassword(User user)
        {
            var result = db.Users.FirstOrDefault(x => x.Email == user.Email && x.User1 == user.User1);

            if (result != null)
            {
                string code = RandomCode();

                var kq = db.MailVerifies.FirstOrDefault(x => x.UserName.Equals(result.User1) && x.Email.Equals(result.Email));
                if (kq != null)
                {
                    kq.Status     = false;
                    kq.CodeVerify = code;
                    db.SaveChanges();
                }
                else
                {
                    MailVerify mv = new MailVerify();
                    mv.UserName   = result.User1;
                    mv.Email      = result.Email;
                    mv.CodeVerify = code;
                    mv.Status     = false;
                    db.MailVerifies.Add(mv);
                    db.SaveChanges();
                }

                string content = System.IO.File.ReadAllText(Server.MapPath("~/Content/TemplateEmail/TemplateEmail.html"));

                var mailserver = db.MailServers.FirstOrDefault(x => x.ID == 1);

                content = content.Replace("{{Code}}", code);
                content = content.Replace("{{MailServer}}", mailserver.Email);
                var    toEmail = user.Email;
                string fromEmailDisplayName = "Xác thực email";

                bool flag = SendMail(toEmail, "Xác thực email lấy lại mật khẩu tài khoản Minh Nguyên", content, fromEmailDisplayName);
                if (flag.Equals(false))
                {
                    ViewBag.User  = result.User1;
                    ViewBag.Email = result.Email;
                    return(View("VerifyCode"));
                }
                else
                {
                    return(RedirectToAction("ServerError"));
                }
            }
            else
            {
                ModelState.AddModelError("", "Tên tài khoản hoặc email không đúng!");
                return(View());
            }
        }
예제 #4
0
        public void TestNoMailForDomain()
        {
            MailVerify mailVerify = new MailVerify();

            IList <string> emails = new List <string>()
            {
                "*****@*****.**",
            };

            foreach (string email in emails)
            {
                ValidationStatus result = mailVerify.Validate(email);

                Assert.AreEqual(ValidationStatus.NoMailForDomain, result, email);
            }
        }
예제 #5
0
        public void TestUnableToTest()
        {
            MailVerify mailVerify = new MailVerify();

            IList <string> emails = new List <string>()
            {
                "*****@*****.**",
            };

            foreach (string email in emails)
            {
                ValidationStatus result = mailVerify.Validate(email);

                Assert.AreEqual(ValidationStatus.MailServerUnavailable, result, email);
            }
        }
예제 #6
0
        public void TestAddressIsEmpty()
        {
            MailVerify mailVerify = new MailVerify();

            IList <string> emails = new List <string>()
            {
                "",
                "  ",
                null,
            };

            foreach (string email in emails)
            {
                ValidationStatus result = mailVerify.Validate(email);

                Assert.AreEqual(ValidationStatus.AddressIsEmpty, result, email);
            }
        }
예제 #7
0
        public void TestInvalidDomain()
        {
            MailVerify mailVerify = new MailVerify();

            IList <string> emails = new List <string>()
            {
                "*****@*****.**",
                "*****@*****.**",
                "mail@по-кружке.рф",
            };

            foreach (string email in emails)
            {
                ValidationStatus result = mailVerify.Validate(email);

                Assert.AreEqual(ValidationStatus.NoMailForDomain, result, email);
            }
        }
예제 #8
0
        public void TestInvalidFormat()
        {
            MailVerify mailVerify = new MailVerify();

            IList <string> emails = new List <string>()
            {
                "mail.zelbike1.ru",
                "adoconnec [email protected]",
                "adoconnection@yandex1@",
            };

            foreach (string email in emails)
            {
                ValidationStatus result = mailVerify.Validate(email);

                Assert.AreEqual(ValidationStatus.InvalidFormat, result, email);
            }
        }
예제 #9
0
        public ActionResult VerifyCode(MailVerify mv)
        {
            var result = db.MailVerifies.FirstOrDefault(x => x.UserName == mv.UserName && x.Email == mv.Email);

            if (result != null)
            {
                if (result.Status.Equals(false))
                {
                    mv.CodeVerify = mv.CodeVerify.Replace(" ", "");
                    if (result.CodeVerify.Equals(mv.CodeVerify))
                    {
                        ViewBag.User  = mv.UserName;
                        ViewBag.Email = mv.Email;
                        result.Status = true;
                        db.SaveChanges();
                        return(View("GetPassword"));
                    }
                    else
                    {
                        ViewBag.User  = mv.UserName;
                        ViewBag.Email = mv.Email;
                        ModelState.AddModelError("", "Mã xác thực không đúng!");
                        return(View());
                    }
                }
                else
                {
                    ViewBag.User  = mv.UserName;
                    ViewBag.Email = mv.Email;
                    ModelState.AddModelError("", "Mã xác thực không còn hiệu lực!");
                    return(View());
                }
            }
            else
            {
                ModelState.AddModelError("", "Không tìm thấy tài khoản cần xác thực!");
                return(View());
            }
        }
예제 #10
0
        public void TestDisposableMail()
        {
            MailVerify mailVerify = new MailVerify();

            IList <string> emails = new List <string>()
            {
                "*****@*****.**",
                "*****@*****.**",
                "*****@*****.**",
                "*****@*****.**",
                "*****@*****.**",
                "*****@*****.**",
                "*****@*****.**",
            };

            foreach (string email in emails)
            {
                ValidationStatus result = mailVerify.Validate(email);

                Assert.AreEqual(ValidationStatus.MailboxIsDisposable, result, email);
            }
        }
예제 #11
0
        public void TestAvailable()
        {
            MailVerify mailVerify = new MailVerify();

            IList <string> emails = new List <string>()
            {
                "*****@*****.**",
                "*****@*****.**",
                "*****@*****.**",
            };

            foreach (string email in emails)
            {
                ValidationStatus result = mailVerify.Validate(email);

                if (result != ValidationStatus.OK)
                {
                    Assert.Fail("Unable to test " + email);
                }

                Assert.AreEqual(ValidationStatus.OK, result, email);
            }
        }
예제 #12
0
        public static bool MailVerify(this string email)
        {
            MailVerify mailVerify = new MailVerify();

            return(mailVerify.Validate(email) == ValidationStatus.OK);
        }
예제 #13
0
        public static ValidationStatus MailValidate(this string email)
        {
            MailVerify mailVerify = new MailVerify();

            return(mailVerify.Validate(email));
        }