コード例 #1
0
        public static async Task Main(string[] args)
        {
            List <string> scopes = new List <string>()
            {
                "user.read",
                "Reports.Read.All"
            };
            string token = await Authentication.getTokenAuthAsync(scopes);

            Console.WriteLine(token);
            args[0] = "D7";
            if (args.Length != 0)
            {
                string graphAPIEndpoint = $"https://graph.microsoft.com/v1.0/reports/getEmailActivityUserDetail(period='{args[0]}')";
                Console.Write(graphAPIEndpoint);
                HttpHelper httpHelper = new HttpHelper();
                string     filepath   = Path.GetTempPath() + $"\\MailUsageReport{args[0]}.csv";
                await httpHelper.GetHttpContentAsync(graphAPIEndpoint, token, filepath);

                await CSVHelper.sortCSV(filepath);

                SendEmailHelper emailHelper = new SendEmailHelper(System.Configuration.ConfigurationManager.AppSettings["Server"], System.Configuration.ConfigurationManager.AppSettings["Server"], 587);
                List <string>   receivers   = System.Configuration.ConfigurationManager.AppSettings["Receivers"].Split(',').ToList();
                List <string>   ccs         = System.Configuration.ConfigurationManager.AppSettings["CCs"].Split(',').ToList();
                await emailHelper.SendEmail(System.Configuration.ConfigurationManager.AppSettings["Email"], System.Configuration.ConfigurationManager.AppSettings["Password"], receivers, ccs, args[0] == "D7"?"Weekly Report Mail Usage" : "Monthly Report Mail Usage", args[0] == "D7"? "Weekly Report Mail Usage" : "Monthly Report Mail Usage", filepath);
            }
        }
コード例 #2
0
        public async Task <IActionResult> SendEmail(int logId)
        {
            SendEmailLogBll sendEmailLogBll = new SendEmailLogBll();
            var             log             = await sendEmailLogBll.GetById(logId);

            SendEmailHelper.SendEmail(log);
            return(Json(new { code = 1, msg = "OK" }));
        }
コード例 #3
0
        public ActionResult SendEmail(EmailBodyViewModel contactModel)
        {
            if (!ModelState.IsValid)
            {
                //Not necessary, but another way to get hold of validation errors
                IEnumerable <ModelError> allErrors = ModelState.Values.SelectMany(v => v.Errors);

                List <string> errorList = new List <string>();

                var modelErrors = allErrors as ModelError[] ?? allErrors.ToArray();
                errorList.Add("<ul class=\"list-unstyled\">");
                foreach (var error in modelErrors)
                {
                    errorList.Add($"<li class=\"text-danger\">{error.ErrorMessage}</li>");
                }
                errorList.Add("</ul>");

                string displayErrors = string.Join(" ", errorList.ToArray());
                TempData["ErrorList"] = displayErrors;

                return(View("Home"));
            }

            EmailBodyViewModel emailBodyModel = new EmailBodyViewModel
            {
                Email   = contactModel.Email,
                Name    = contactModel.Name,
                Subject = contactModel.Subject,
                Message = contactModel.Message
            };

            //Instead of using stringbuilder to create email body, use an online source to create email body such as https://chamaileon.io/
            var emailBody = _renderMvcPartialsContact.RenderPartialViewToString("pvContactPartialViewTemplate", emailBodyModel);

            EmailParametersHelper emailModel = new EmailParametersHelper
            {
                BodyText         = emailBody,
                EmailModelHelper = emailBodyModel
            };
            bool emailSentStatus = SendEmailHelper.SendEmail(emailModel);

            if (emailSentStatus)
            {
                TempData["Status"] = "Email Sent";
                return(View());
            }

            TempData["Status"] = "Email Failed";
            return(View());
        }
コード例 #4
0
        /// <summary>
        /// -- Build mail body --
        /// </summary>
        /// <param name="itemKey"></param>
        /// <param name="itemValue"></param>
        /// <param name="bcc"></param>
        /// <param name="cc"></param>
        private bool BuildMailBody(string itemKey, string itemValue, string bcc = null, string cc = null)
        {
            string currentMonth = DateTime.Now.ToString("MMMM").ToUpper();
            string sujet        = $"Fihe de paie de {currentMonth}.";

            //string fullName = itemKey.ToString().Split('@')[0].ToString();

            //string corpsDuMail = $"Bonjour {fullName.ToUpper()},\n\nTu trouvera ci-joint ta fiche de paie de du mois de " +
            //    $"{currentMonth}. \n\nEn te souhaitant bonne réception";

            if (IsPreviewEmail && string.IsNullOrEmpty(AdminEmail))
            {
                ErrorMessage = ErrorMessageLabels.CheckAdminEmailMsg;
                _logger.Debug($"==> {ErrorMessage}.");

                _dialogService.ShowMessage(ErrorMessage, "Error",
                                           MessageBoxButton.OK,
                                           MessageBoxImage.Error,
                                           MessageBoxResult.Yes);

                return(false);
            }
            else
            {
                // -- Création d'objet mailMessage --
                _emailMessage.MailBody      = corpsDuMail;
                _emailMessage.Suject        = sujet;
                _emailMessage.FilePath      = itemValue;
                _emailMessage.ToEmail       = itemKey;
                _emailMessage.Bcc           = bcc;
                _emailMessage.Cc            = cc;
                _emailMessage.AdminEmail    = AdminEmail;
                _emailMessage.IsPreviewMail = IsPreviewEmail;

                var sendMailResponse = SendEmailHelper.SendEmail(_emailMessage);

                if (sendMailResponse == false)
                {
                    ErrorMessage = "Erreur durant l'envoie de l'email. \n Vous devez saisir l'adresse mail administrateur!";
                    _logger.Debug($"==> {ErrorMessage}.");

                    _dialogService.ShowMessage(ErrorMessage, "Error",
                                               MessageBoxButton.OK,
                                               MessageBoxImage.Error,
                                               MessageBoxResult.Yes);
                }
                return(sendMailResponse);
            }
        }
コード例 #5
0
        public static bool SendVerificationEmail(string emailAddress, string guid)
        {
            try
            {
                StringBuilder emailMessage = new StringBuilder();

                emailMessage.Append("<p>Hello,</p>");
                emailMessage.Append(string.Format("<p><a href='{0}?email={1}&token={2}'>Please click here to verify your email</a></p>", AppSettingConfigurations.AppSettings.VerifyEmailUrl, emailAddress, guid));
                emailMessage.Append("<p>Thank you for using Tenant!</p>");
                SendEmailHelper.SendEmail(emailAddress, emailMessage, "Tenant - Email verification", true);
                return(true);
            }
            catch (Exception ex)
            {
                return(false);
            }
        }
コード例 #6
0
        public static bool SendPasswordResetEmail(string emailAddress, string guid)
        {
            try
            {
                StringBuilder emailMessage = new StringBuilder();

                emailMessage.Append("<p>Hello,</p>");
                emailMessage.Append("<p>You have requested a password reset for the Tenant website.</p>");
                emailMessage.Append(string.Format("<p><a href='{0}?email={1}&token={2}'>Please click here to reset your password</a></p>", AppSettingConfigurations.AppSettings.ResetPasswordUrl, emailAddress, guid));
                emailMessage.Append("<p>If you did not request a password reset, please just ignore this email.");
                emailMessage.Append("<p>Thank you for using Tenant!</p>");

                SendEmailHelper.SendEmail(emailAddress, emailMessage, "Tenant - Password Reset Request", true);

                return(true);
            }
            catch (Exception ex)
            {
                return(false);
            }
        }
コード例 #7
0
        /// <summary>
        /// SendErrorMail
        /// </summary>
        /// <param name="emailRequest"></param>
        /// <returns></returns>
        public bool SendErrorMail(EmailRequestErrorDTO emailRequest)
        {
            try
            {
                SendEmailHelper objEmail = new SendEmailHelper();
                objEmail.HostName       = _configuration["HostName"];
                objEmail.Port           = Int32.Parse(_configuration["Port"]);
                objEmail.FromEmail      = _configuration["FromEmail"];
                objEmail.EnableSsl      = true;
                objEmail.DeliveryMethod = SmtpDeliveryMethod.Network;
                objEmail.Password       = _configuration["Password"];
                objEmail.UserName       = _configuration["UserNameData"];
                objEmail.TO             = emailRequest.To;
                if (emailRequest.CC != null)
                {
                    objEmail.CC = emailRequest.CC;
                }
                if (emailRequest.BCC != null)
                {
                    objEmail.BCC = emailRequest.BCC;
                }

                var emaiTemplate = dataContext.EmailTemplates.FirstOrDefault(x => x.EmailTemplateName == emailRequest.EmailTemplateName);
                if (emaiTemplate != null)
                {
                    objEmail.Subject = emaiTemplate.Subject;
                    string body = emaiTemplate.EmailBody;
                    if (emailRequest.IPAddress != null)
                    {
                        body = body.Replace("#IPAddress#", emailRequest.IPAddress);
                    }
                    if (emailRequest.LogType != null)
                    {
                        body = body.Replace("#LogType#", emailRequest.LogType);
                    }
                    if (emailRequest.CustomErrorMessage != null)
                    {
                        body = body.Replace("#CustomErrorMessage#", emailRequest.CustomErrorMessage);
                    }
                    if (emailRequest.ModuleName != null)
                    {
                        body = body.Replace("#ModuleName#", emailRequest.ModuleName);
                    }
                    if (emailRequest.TrackTrace != null)
                    {
                        body = body.Replace("#TrackTrace#", emailRequest.TrackTrace);
                    }
                    if (emailRequest.SystemErrorMesage != null)
                    {
                        body = body.Replace("#SystemErrorMesage#", emailRequest.SystemErrorMesage);
                    }
                    if (emailRequest.CreatedAt != null)
                    {
                        string currentDateString = String.Format("{0:MM-dd-yyyy}", emailRequest.CreatedAt);
                        body = body.Replace("#CreatedDate#", currentDateString);
                    }
                    body          = body.Replace("#Year#", DateTime.Now.Year.ToString());
                    objEmail.Body = body;
                    var mail = objEmail.SendEmail();
                    return(mail);
                }
                else
                {
                    return(false);
                }
            }
            catch
            {
                return(false);
            }
        }
        /// <summary>
        /// -- Build mail body --
        /// </summary>
        /// <param name="itemKey"></param>
        /// <param name="itemValue"></param>
        /// <param name="bcc"></param>
        /// <param name="cc"></param>
        private bool BuildMailBody(string itemKey, string itemValue, string bcc = null, string cc = null)
        {
            string currentMonth = DateTime.Now.ToString("MMMM").ToUpper();
            string sujet        = $"Fihe de paie de {currentMonth}.";

            try
            {
                if (string.IsNullOrEmpty(AdminEmail))
                {
                    ErrorMessage = ErrorMessageLabels.CheckAdminEmailMsg;
                    _logger.Error($"==> {ErrorMessage}.");

                    return(false);
                }
                else
                {
                    _logger.Debug($"==> Appel à la méthode de création d'objet mailMessage [MailConsolidateHelper.BuildMailDetail]");

                    if (string.IsNullOrEmpty(_templateFilePath))
                    {
                        ErrorMessage = ErrorMessageLabels.PleaseMailBodyMsg;

                        // -- Set Reminding message color --
                        RemindingMsgForeground = System.Windows.Media.Brushes.Red;

                        return(false);
                    }

                    MailConsolidateHelper.BuildMailDetail(_emailMessage, _templateFilePath,
                                                          sujet, itemValue, itemKey, bcc, cc, AdminEmail, IsPreviewEmail);

                    _logger.Debug($"==> Appel de la fontion SendMail [SendEmailHelper.SendEmail]");
                    var sendMailResponse = SendEmailHelper.SendEmail(_emailMessage);

                    if (sendMailResponse == false)
                    {
                        ErrorMessage = ErrorMessageLabels.ErrorDuringSendingMailMsg;
                        _logger.Error($"==> {ErrorMessage}.");

                        BorderThickness = 2;
                        BorderBrush     = System.Windows.Media.Brushes.Red;
                    }
                    else
                    {
                        BorderThickness = 1;
                        BorderBrush     = System.Windows.Media.Brushes.Transparent;
                    }
                    return(sendMailResponse);
                }
            }
            finally
            {
                if (!string.IsNullOrWhiteSpace(ErrorMessage))
                {
                    _dialogService.ShowMessage(ErrorMessage, "ERROR",
                                               MessageBoxButton.OK,
                                               MessageBoxImage.Error,
                                               MessageBoxResult.Yes);
                }
            }
        }
コード例 #9
0
        static void Main(string[] args)
        {
            Console.WriteLine("----------------------1内置节点-----------------------");
            var val  = ConfigurationManager.AppSettings["MailServer"];
            var user = ConfigurationManager.AppSettings["MailUser"];
            var pwd  = ConfigurationManager.AppSettings["MailPassword"];

            Console.WriteLine("MailServer:" + val);
            Console.WriteLine("MailUser:"******"MailPassword:"******"\r");

            Console.WriteLine("----------------------2自定义节点,内置处理程序-----------------------");
            Hashtable mailServer = (Hashtable)ConfigurationManager.GetSection("mailServer");

            Console.WriteLine("address:" + mailServer["address"].ToString());
            Console.WriteLine("userName:"******"userName"].ToString());
            Console.WriteLine("password:"******"password"].ToString());
            Console.WriteLine("\r");


            Console.WriteLine("-----------3自定义节点,自定义处理程序 IConfigurationSectionHandler--------------");
            MailServerConfig mailConfig = (MailServerConfig)ConfigurationManager.GetSection("mailServerGroup");

            Console.WriteLine("provider:" + mailConfig.Provider);
            Console.WriteLine("\r");

            Console.WriteLine("client1:" + mailConfig[0].Client);
            Console.WriteLine("address1:" + mailConfig[0].Address);
            Console.WriteLine("userName1:" + mailConfig[0].UserName);
            Console.WriteLine("password1:" + mailConfig[0].Password);
            Console.WriteLine("\r");

            Console.WriteLine("client2:" + mailConfig[1].Client);
            Console.WriteLine("address2:" + mailConfig[1].Address);
            Console.WriteLine("userName2:" + mailConfig[1].UserName);
            Console.WriteLine("password2:" + mailConfig[1].Password);
            Console.WriteLine("\r");

            Console.WriteLine("----------3自定义节点,自定义处理程序 ConfigurationSection------------");
            MailServerSection mailSection = (MailServerSection)ConfigurationManager.GetSection("mailServerGroup2");

            Console.WriteLine("provider:" + mailSection.Provider);
            Console.WriteLine("\r");

            Console.WriteLine("client1:" + mailSection.MailServers[0].Client);
            Console.WriteLine("address1:" + mailSection.MailServers[0].Address);
            Console.WriteLine("userName1:" + mailSection.MailServers[0].UserName);
            Console.WriteLine("password1:" + mailSection.MailServers[0].Password);
            Console.WriteLine("\r");

            Console.WriteLine("client2:" + mailSection.MailServers[1].Client);
            Console.WriteLine("address2:" + mailSection.MailServers[1].Address);
            Console.WriteLine("userName2:" + mailSection.MailServers[1].UserName);
            Console.WriteLine("password2:" + mailSection.MailServers[1].Password);

            Console.WriteLine("\r");

            Console.WriteLine("----------4存储对象------------");

            //IGreetingStrategy greetingStrategy = new ChineseGreeting();
            //GeneralClass generalObj = new GeneralClass(greetingStrategy);
            //if (generalObj != null)
            //    generalObj.SayHello();


            //string strategy = ConfigurationManager.AppSettings["GreetingLanguage"];
            //IGreetingStrategy greetingStrategy = null;
            //GeneralClass generalObj = null;

            //if (strategy == "Chinese")
            //    greetingStrategy = new ChineseGreeting();
            //else if (strategy == "English")
            //    greetingStrategy = new EnglishGreeting();

            //if (greetingStrategy != null)
            //    generalObj = new GeneralClass(greetingStrategy);

            //if (generalObj != null)
            //    generalObj.SayHello();

            IGreetingStrategy greetingStrategy = (IGreetingStrategy)ConfigurationManager.GetSection("greetingStrategy");

            GeneralClass generalObj = null;

            if (greetingStrategy != null)
            {
                generalObj = new GeneralClass(greetingStrategy);
            }

            if (generalObj != null)
            {
                generalObj.SayHello();
            }


            //Console.WriteLine("----------5统一结点配置管理------------");

            ConfigManager config = (ConfigManager)ConfigurationManager.GetSection("traceFact");

            Console.WriteLine("Name:" + config.ForumConfig.Name);
            Console.WriteLine("OfflineTime:" + config.ForumConfig.OfflineTime.ToString());
            Console.WriteLine("PageSize:" + config.ForumConfig.PageSize.ToString());
            Console.WriteLine("ReplyCount:" + config.ForumConfig.ReplyCount.ToString());
            Console.WriteLine("RootUrl:" + config.ForumConfig.RootUrl.ToString());


            //var ordre_info = new List<string>() { "1", "2", "3", "4", "5" };

            //while (ordre_info.Count() > 3)
            //{
            //    var li_ = ordre_info.Take(3).ToList();
            //    ordre_info.RemoveRange(0, 3);
            //}

            Console.WriteLine("----------Xsd第三方元数据验证------------");
            Console.WriteLine("\r");

            XsdHelper.XmlValidationByXsd("", "", "http://www.oncefly.com");

            Console.WriteLine("----------配置分类读取------------");
            Console.WriteLine("\r");

            //JackyFei.Config.Config.Configuration.ConfigurationManager.ProductConfig.Promotions.ForEach(promotion =>
            //{
            //    Console.WriteLine(promotion.DomainModelPath.Path);
            //});

            //JackyFei.Config.Config.Configuration.ConfigurationManager.ServiceConfig.Services.ForEach(service =>
            //{
            //    Console.WriteLine("Address:{0};Timeout:{1}", service.Address, service.Timeout);
            //});

            //var distributeTime = JackyFei.Config.Config.Configuration.ConfigurationManager.OrderConfig.DistributeTime;
            //Console.WriteLine("StartTime:{0};StartTime:{1};DistributeType:{2}", distributeTime.StartTime, distributeTime.EndTime, distributeTime.DistributeType);
            //var distributeArea = JackyFei.Config.Config.Configuration.ConfigurationManager.OrderConfig.DistributeArea;
            //Console.WriteLine("BeginArea:{0};EndArea:{1}", distributeArea.BeginArea, distributeArea.EndArea);

            Order order = new Order()
            {
                Id = "001", State = OrderState.BeginDistribute
            };

            SendEmailHelper.SendEmail(order);

            Console.ReadLine();
        }