/// <summary> /// 发送提醒 /// </summary> /// <param name="userReminderInfos">用户提醒信息</param> public void SendReminder(IList<UserReminderInfo> userReminderInfos) { if (userReminderInfos == null || userReminderInfos.Count == 0) return; UserReminderInfo userReminderInfo = userReminderInfos.First(); IUserService userService = DIContainer.Resolve<IUserService>(); IUser user = userService.GetUser(userReminderInfo.UserId); if (user != null) { EmailService emailService = new EmailService(); emailService.Enqueue(EmailBuilder.Instance().Reminder(userReminderInfos, user)); } }
/// <summary> /// 转换为数据存储实体 /// </summary> /// <returns></returns> public SmtpSettings AsSmtpSettings() { SmtpSettings settings = new SmtpSettings(); if (this.Id > 0) settings = new EmailService().GetSmtpSettings(this.Id); settings.Host = this.Host; settings.DailyLimit = this.DailyLimit; settings.EnableSsl = this.EnableSsl; settings.ForceSmtpUserAsFromAddress = this.ForceSmtpUserAsFromAddress; settings.Host = this.Host; settings.Password = this.Password; settings.Port = this.Port; settings.RequireCredentials = this.RequireCredentials; settings.UserEmailAddress = this.UserEmailAddress; settings.UserName = this.UserName; return settings; }
public ActionResult ActivateByEmail(ActivateByEmail model) { if (string.IsNullOrEmpty(model.Token)) return Json(SiteUrls.Instance().SystemMessage()); if (!ModelState.IsValid) return Json(new StatusMessageData(StatusMessageType.Error, "验证码填写错误,发送失败")); bool isTimeout = false; long userId = Utility.DecryptTokenForValidateEmail(model.Token, out isTimeout); if (isTimeout) { return Json(SiteUrls.Instance().SystemMessage(TempData, new SystemMessageViewModel { Title = "链接已经失效", Body = "您使用的链接已经失效,请重新登陆", StatusMessageType = StatusMessageType.Hint })); } if (userId <= 0) { return Json(SiteUrls.Instance().SystemMessage(TempData, new SystemMessageViewModel { Title = "查找不到对应的用户", Body = "对不起,你访问的用户不存在", StatusMessageType = StatusMessageType.Hint })); } IUser user = userService.GetFullUser(userId); User userSaveToDB = user as User; if (user.AccountEmail != model.AccountEmail) { string errorMessage; bool isValidateEmail = Utility.ValidateEmail(model.AccountEmail, out errorMessage); if (!isValidateEmail) { Tunynet.Utilities.WebUtility.SetStatusCodeForError(Response); TempData["StatusMessageData"] = new StatusMessageData(StatusMessageType.Error, Tunynet.Utilities.WebUtility.HtmlDecode(errorMessage)); return _ActivateByEmail(model.AccountEmail, model.Token); } userSaveToDB.AccountEmail = model.AccountEmail; userSaveToDB.IsEmailVerified = false; membershipService.UpdateUser(userSaveToDB); } //需要邮箱激活 try { System.Net.Mail.MailMessage mailMessage = EmailBuilder.Instance().RegisterValidateEmail(userSaveToDB); EmailService emailService = new EmailService(); //异步发送 if (emailService.SendAsyn(mailMessage)) { SiteSettings siteSettings = new SiteSettings(); TempData["SendEmailSucceedViewModel"] = SendEmailSucceedViewModelFactory.GetRegisterSendEmailSucceedViewModel(user.AccountEmail); return Json(SiteUrls.Instance().SendEmailSucceed()); } } catch (Exception ex) { LoggerFactory.GetLogger().Log(LogLevel.Error, ex, "创建帐号给用户发送激活邮件时发生错误"); } return Json(SiteUrls.Instance().SystemMessage(TempData, new SystemMessageViewModel { Title = "发送失败", Body = "邮件发送失败", StatusMessageType = StatusMessageType.Hint })); }
private bool SendEmailToContact(List<string> sendEmails) { if (sendEmails.Count <= 0) return false; IUser user = authenticationService.GetAuthenticatedUser(); if (user == null) return false; EmailService emailService = new EmailService(); foreach (var contact in sendEmails) { string code = inviteFriendService.GetInvitationCode(user.UserId); if (string.IsNullOrEmpty(code)) return false; string url = SiteUrls.FullUrl(SiteUrls.Instance().Invite(code)); System.Net.Mail.MailMessage mailMessage = EmailBuilder.Instance().InviteFriend(contact, url, "我来了,你在那呢?"); emailService.Enqueue(mailMessage); } return true; }
public ActionResult SendAsyn(string spaceKey) { User user = userService.GetFullUser(spaceKey); if (user == null) return HttpNotFound(); bool sendStatus = false; try { System.Net.Mail.MailMessage mailMessage = EmailBuilder.Instance().RegisterValidateEmail(user); EmailService emailService = new EmailService(); sendStatus = emailService.SendAsyn(mailMessage); } catch (Exception e) { ILogger logger = LoggerFactory.GetLogger(); logger.Error(e, "异步发送激活邮件时报错"); } if (sendStatus) { TempData["SendEmailSucceedViewModel"] = SendEmailSucceedViewModelFactory.GetRegisterSendEmailSucceedViewModel(user.AccountEmail); return Redirect(SiteUrls.Instance().SendEmailSucceed()); } TempData["SendEmailStatus"] = false; return RedirectToAction("EditUserProfile", new { spaceKey = spaceKey }); }
/// <summary> /// 发送获取密码Email /// </summary> /// <remarks> /// 由具体实现类来决定是否发送之前是否验证accountEmail与username的匹配性 /// </remarks> /// <param name="accountEmail">帐号密码</param> /// <param name="username">用户名</param> /// <returns>发送成功返回true,否则返回false</returns> public bool SendRecoverPasswordEmail(string accountEmail, string username = null) { IUserService userService = DIContainer.Resolve<IUserService>(); IUser user = userService.FindUserByEmail(accountEmail); if (user == null) return false; if (!string.IsNullOrEmpty(username) && !user.UserName.Equals(username, StringComparison.InvariantCultureIgnoreCase)) return false; EmailService emailService = new EmailService(); //发送忘记密码邮件 return emailService.SendAsyn(EmailBuilder.Instance().ResetPassword(user)); }
void UserEmailEventMoudle_After(User sender, CreateUserEventArgs eventArgs) { EmailService emailService = new EmailService(); //发送注册成功邮件 emailService.SendAsyn(EmailBuilder.Instance().RegisterSuccess(eventArgs.Password, sender)); }