Exemple #1
0
        public void LoopSendEmali(List <EmailAccount> accs, string subject)
        {//每日激活邮件账户
         //查询邮件账户列表
            string            dir          = LogPrepare.GetLogPath();
            ELogType          el           = ELogType.EmailLog;
            string            file         = LogPrepare.GetLogName(el);
            IEmailDataService emailService = IocMvcFactoryHelper.GetInterface <IEmailDataService>();

            foreach (var item in accs)
            {
                string time  = DateTime.Now.ToString(Common.Data.CommonFormat.DateTimeFormat);
                string title = "[HrApp Everyday active]";
                try
                {
                    //使用邮件账户进行邮件发送
                    short smtp = item.Smtp;
                    //拼接发送的邮件内容
                    EmailSystemSetting ess = new EmailSystemSetting()
                    {
                        EmailAccount      = item.Account,
                        EmailAuthortyCode = item.AuthortyCode,
                        EmailHost         = item.SmtpHost,
                        EmailHostPort     = EmailSystemSetting.GetHostPortSmtp(smtp)
                    };
                    ess.Smtp = (EnumSMTP)smtp;
                    StringBuilder body = new StringBuilder();
                    body.AppendLine(" Guid:<br/> ");
                    for (int i = 0; i < 10; i++)
                    {
                        body.AppendLine(string.Format(" {0}<br/> ", Guid.NewGuid().ToString().ToUpper()));
                    }
                    string       text      = string.Format("{0} <br/>  smtp= {1}<br/> time= {2} <br/>{3}  ", title, item.Account, time, body.ToString());
                    string       receive   = InitAppSetting.Global.ReceiverInEmailActive;
                    AppEmailData emailData = new AppEmailData()
                    {
                        EmailCreateTime = DateTime.Now,
                        To      = string.IsNullOrEmpty(receive) ? "*****@*****.**" : receive,
                        Subject = subject,
                        From    = item.Account,
                        Body    = text
                    };
                    emailService.SendEmail(ess, emailData, ess.Smtp);
                    LoggerWriter.CreateLogFile(title + "[Success]" + time, dir, el, file, true);
                }
                catch (Exception ex)
                {
                    title += ex.Message;
                    LoggerWriter.CreateLogFile(title + "[Error]" + time, dir, el, file, true);
                }
            }
        }
Exemple #2
0
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {                                                  //此处理并非是客户端直接传递过来的参数,而是经过代码处理后的结果
            RequestContext  request = filterContext.RequestContext;
            HttpContextBase hcb     = request.HttpContext; //HTTP请求相关参数

            //是否开启日志记录
            if (InitAppSetting.OpenDebugType)
            {
                StringBuilder   sb         = new StringBuilder();
                HttpRequestBase req        = hcb.Request;//包含请求头相关信息的实体
                string          webBrowser = req.UserAgent;
                sb.AppendLine("UserAgent=\t" + webBrowser);
                string[] userLanguage = req.UserLanguages;//用户使用的语言
                sb.AppendLine("UserLanguages =\t" + string.Join("|", userLanguage));
                string url = req.Url.ToString();
                sb.AppendLine("Url=\t" + url);
                string method = req.RequestType;//HTTP请求形式
                sb.AppendLine("RequestType=\t" + method);
                string httpMethod = req.HttpMethod;
                sb.AppendLine("HttpMethod=\t" + httpMethod);
                //req.Form //请求的表单
                //req.Headers //请求头
                HttpCookieCollection cookies = req.Cookies;//请求的cookie
                if (cookies.Count > 0)
                {
                    sb.AppendLine("Cookies=");

                    /*
                     * “System.InvalidCastException”类型的异常在 HRApp.Web.dll 中发生,但未在用户代码中进行处理
                     *
                     * 其他信息: 无法将类型为“System.String”的对象强制转换为类型“System.Web.HttpCookie”
                     * 不能直接使用foreach
                     * foreach (HttpCookie item in cookies)
                     * {
                     *  sb.AppendLine(item.ConvertJson()+"\r\n");
                     * }
                     * https://www.cnblogs.com/answercard/archive/2009/02/02/1382404.html
                     */
                    for (int i = 0; i < cookies.Count; i++)
                    {
                        HttpCookie hc = cookies[i];
                        sb.AppendLine(hc.ConvertJson() + "\r\n");
                    }
                }
                string mimeType = req.ContentType;//文件传输类型
                sb.AppendLine("ContentType=\t" + mimeType);
                System.Text.Encoding userEncoding = req.ContentEncoding;
                sb.AppendLine("ContentEncoding=\t" + userEncoding.ToString());
                HttpBrowserCapabilitiesBase browserInfo = req.Browser;
                sb.AppendLine("Browser=\t" + browserInfo.Browser + "\t");
                for (int i = 0; i < browserInfo.Browsers.Count; i++)
                {
                    sb.Append(browserInfo.Browsers[i].ToString() + "\t");
                }
                sb.AppendLine("\r\nMobileDeviceModel=\t" + browserInfo.MobileDeviceModel);
                sb.AppendLine("Platform=\t" + browserInfo.Platform);
                string[] browserSupperMimeType = req.AcceptTypes;//HTTP预返回前端支持的文件格式
                sb.AppendLine("\nAcceptTypes=\t" + string.Join(" ", browserSupperMimeType));
                sb.AppendLine("Ip:" + GetBrowserIp());
                ELogType el   = ELogType.DebugData;
                string   file = LogPrepare.GetLogName(el);
                LoggerWriter.CreateLogFile(sb.ToString(), LogPrepare.GetLogPath(), el, file, true);
            }
            IDictionary <string, object> apiParamList = filterContext.ActionParameters;//进入接口传递的参数
            RouteData rd = filterContext.RouteData;

            if (apiParamList.Count == 0)
            {
                return;
            }
            base.OnActionExecuting(filterContext);
        }
Exemple #3
0
        private void TestEmail(string title)
        {
            string text = "使用代码进行邮箱测试功能";
            string time = DateTime.Now.ToString(Common.Data.CommonFormat.DateTimeFormat);

            text += "<br/>邮件创建时间 :" + time;
            for (int i = 0; i < 10; i++)
            {
                text += string.Format("<br/> Guid{0}={1}", (i + 1), Guid.NewGuid().ToString().ToUpper());
            }
            string   logDir = LogPrepare.GetLogPath();
            ELogType el     = ELogType.EmailLog;
            string   day    = LogPrepare.GetLogName(el);

            try
            {
                Dictionary <string, string> emailSetting = InitAppSetting.AppSettingItemsInDB;
                string   type       = emailSetting[EAppSetting.SMTP.ToString()];
                string   sendBy     = emailSetting[EAppSetting.SystemEmailSendBy.ToString()];
                string   authorCode = emailSetting[EAppSetting.SystemEmailSMPTAuthor.ToString()];
                string   smtpClient = emailSetting[EAppSetting.SMTPClient.ToString()];
                EnumSMTP smtp;
                Enum.TryParse(type, out smtp);
                AppEmailData emailData = new AppEmailData()
                {
                    EmailCreateTime = DateTime.Now,
                    To      = InitAppSetting.Global.ReceiverInEmailActive,// "*****@*****.**",
                    Subject = title,
                    From    = sendBy,
                    Body    = text
                };
                EmailSystemSetting setting = new Model.EmailSystemSetting()
                {
                    EmailHostPort     = smtp == EnumSMTP.NETS163? 25:587,
                    EmailAuthortyCode = authorCode,
                    EmailAccount      = sendBy,
                    EmailHost         = smtpClient
                };

                #region 直接发送,不存储【测试可用】

                /*
                 * EmailData email = new EmailData()
                 * {
                 *  EmailTo =InitAppSetting.Global.ReceiverInEmailActive,
                 *  EmailSubject = title,
                 *  EmailBody = text,
                 *  CreateTime = DateTime.Now,
                 *  EmailFrom = sendBy
                 * };
                 * EmailService es = new EmailService(smtpClient, sendBy, authorCode, 25, true);
                 * es.SendEmailBy163(email);
                 * */
                #endregion
                IEmailDataService eds = IocMvcFactoryHelper.GetInterface <IEmailDataService>();
                eds.SendEmail(setting, emailData, smtp);
                LoggerWriter.CreateLogFile(time + "\t[OK]进行邮件测试", logDir, el, day, true);
            }
            catch (Exception ex)
            {
                string msg = time + "\t[ Error]" + ex.Message;
                LoggerWriter.CreateLogFile(msg, logDir, el, day, true);
            }
        }