/// <summary> /// 尝试发送邮件 /// </summary> /// <param name="model">邮件实体</param> /// <param name="error">出错信息</param> /// <returns>是否发送成功</returns> public static Boolean TrySendUserMail(UserMailEntity entity, out String error) { if (!UserManager.IsUserLogined) { error = "Please login first!"; return(false); } if (String.IsNullOrEmpty(entity.Title)) { error = "Title can not be NULL!"; return(false); } if (entity.Title.Length > UserMailRepository.TITLE_MAXLEN) { error = "Title is too long!"; return(false); } if (String.IsNullOrEmpty(entity.Content) || entity.Content.Length < UserMailRepository.CONTENT_MINLEN) { error = "Content is too short!"; return(false); } if (entity.Content.Length > UserMailRepository.CONTENT_MAXLEN) { error = "Content is too long!"; return(false); } if (String.IsNullOrEmpty(entity.ToUserName)) { error = "Username can not be NULL!"; return(false); } if (!RegexVerify.IsUserName(entity.ToUserName)) { error = "Username is INVALID!"; return(false); } if (String.Equals(ConfigurationManager.SystemAccount, entity.ToUserName, StringComparison.OrdinalIgnoreCase)) { error = "You can not send mail to system account!"; return(false); } if (String.Equals(UserManager.CurrentUserName, entity.ToUserName, StringComparison.OrdinalIgnoreCase)) { error = "You can not send mail to yourself!"; return(false); } if (!UserSubmitStatus.CheckLastSubmitUserMailTime(UserManager.CurrentUserName)) { throw new InvalidInputException(String.Format("You can not submit user mail more than twice in {0} seconds!", ConfigurationManager.SubmitInterval.ToString())); } if (!UserManager.InternalExistsUser(entity.ToUserName)) { error = String.Format("The username \"{0}\" doesn't exist!", entity.ToUserName); return(false); } entity.Title = HtmlEncoder.HtmlEncode(entity.Title); entity.Content = HtmlEncoder.HtmlEncode(entity.Content); entity.FromUserName = UserManager.CurrentUserName; if (!UserMailManager.InternalSendUserMail(entity)) { error = "Failed to send your mail"; return(false); } error = String.Empty; return(true); }