コード例 #1
0
ファイル: MvcUtils.cs プロジェクト: ricardosousa1989/MyTrello
        public static void SendVerificationMail(MyTrelloUser user)
        {
            using (var smtpClient = new SmtpClient("smtp.gmail.com"))
            {
                var mailMessage = new MailMessage { From = new MailAddress("*****@*****.**") };
                mailMessage.To.Add(user.Email);
                mailMessage.Subject = "Verification account - MyTrello";
                mailMessage.Body = string.Format("For complete the registration, please visit http://mytrello.apphb.com/Users/CompleteRegister and use this token {0} for validation purposes.", user.VerificationToken);

                smtpClient.EnableSsl = true;
                smtpClient.UseDefaultCredentials = false;
                smtpClient.Credentials = new NetworkCredential("mytrello.info", "accountinfo123456");

                smtpClient.Send(mailMessage);
            }
        }
コード例 #2
0
        public ActionResult Register(UserRegister user)
        {
            if (RepoUser.VerifyIfExistWithId(user.NickName))
                ModelState.AddModelError("NickName", "MyTrelloUser name already exists.");

            if (ModelState.IsValid)
            {
                IGenerator gen = new Generator();
                var userModel = new MyTrelloUser
                                    {
                                        Id = user.NickName,
                                        Name = user.Name,
                                        Password = gen.GenerateHash(user.Password),
                                        Email = user.Email,
                                        CurrentRole = RoleStatus.User,
                                        IsValid = false,
                                        VerificationToken = gen.GenerateToken(),
                                        ContainsImage = false
                                    };

                RepoUser.Add(userModel);

                try
                {
                    MvcUtils.SendVerificationMail(userModel);
                }
                catch (SmtpFailedRecipientsException exception)
                {
                    ModelState.AddModelError("Email", exception);
                    Response.StatusCode = HttpStatusCodes.BadRequest;
                    RepoUser.Remove(userModel.Id);
                    return View("Error");
                }
                catch(SmtpException)
                {
                    Response.StatusCode = HttpStatusCodes.InternalServerError;
                    RepoUser.Remove(userModel.Id);
                    return View("Error");
                }

                return new SeeOtherResult { Uri = Url.Action("Login", "Users") };
            }
            Response.StatusCode = HttpStatusCodes.BadRequest;
            return View(user);
        }