using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Console_SendMail { partial class Program { //DateTime redisTryTime = DateTime.Parse("1982-11-23"); static Boolean bBW = true; static DateTime ChkMakeAutoTime = DateTime.Now.AddDays(-1); static DateTime ChkSendMailTime = DateTime.Now.AddDays(-1); static DateTime ChkMakeSchDayWeekTime = DateTime.Now.AddDays(-1); static DateTime ChkMakeSchDay = DateTime.Now.AddDays(-1); static DateTime ChkNoSchedule = DateTime.Now.AddDays(-1); static DateTime ChkJobreportDay = DateTime.Now.AddDays(-1); static DateTime ChkJObreportWeek = DateTime.Now.AddDays(-1); static DateTime ChkTakeARest = DateTime.Now.AddDays(-1); public static string MailSort(string addr, string except) { if (string.IsNullOrEmpty(except)) return addr; var alist = addr.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries).ToList(); var elist = except.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries).ToList(); foreach (var item in elist) alist.Remove(item); if (alist.Count < 1) return string.Empty; return string.Join(";", alist); } static string getdbdata(object tdata) { if (tdata == null) return string.Empty; return tdata.ToString(); } static string getMaillist(object orgo) { var org = string.Empty; if (orgo != null) org = orgo.ToString(); org = org.Replace(";", ",").Replace(":", ","); string list_to = ""; foreach (var item in org.Split(',')) { if (item.Trim() != "") { var atindex = item.IndexOf("@"); if (atindex != -1) { var dotindex = item.IndexOf(".", atindex + 1); if (dotindex != -1) { //정상이므로 추가한다. if (list_to != "") list_to += ","; list_to += item.Trim(); } } } } return list_to; } static void Main(string[] args) { Console.WriteLine("mail start"); while (true) { //메일대기내역전송 var tsSendMail = DateTime.Now - ChkSendMailTime; if (tsSendMail.TotalMilliseconds > 1000) { try { SendMail(); } catch { } finally { ChkSendMailTime = DateTime.Now; } } //자동생성 메일 작성 var tsAutoMake = DateTime.Now - ChkMakeAutoTime; if (tsAutoMake.TotalMinutes >= 10) { try { MakeAutoMail(); } catch { } finally { ChkMakeAutoTime = DateTime.Now; } } ///스케쥴 기한 알림(주) var tsScheDayweek = DateTime.Now - ChkMakeSchDayWeekTime; if (tsScheDayweek.TotalMinutes > 30 && DateTime.Now.DayOfWeek == DayOfWeek.Monday && DateTime.Now.Hour >= 10 && DateTime.Now.Hour <= 18) { try { Mail_MakeScheduleDayWeek(); } catch { } finally { ChkMakeSchDayWeekTime = DateTime.Now; } } ///스케쥴 기한 알림(일) var tsScheDay = DateTime.Now - ChkMakeSchDay; if (tsScheDay.TotalMinutes > 30 && DateTime.Now.DayOfWeek != DayOfWeek.Saturday && DateTime.Now.DayOfWeek != DayOfWeek.Sunday && DateTime.Now.Hour >= 10 && DateTime.Now.Hour <= 18) { try { Mail_MakeScheduleDay(); } catch { } finally { ChkMakeSchDay = DateTime.Now; } } ///스케쥴없음 var tsNoSchedule = DateTime.Now - ChkNoSchedule; if (tsNoSchedule.TotalMinutes > 30 && DateTime.Now.DayOfWeek == DayOfWeek.Monday && DateTime.Now.Hour >= 10 && DateTime.Now.Hour <= 18) { try { Mail_NoSchedule(); } catch { } finally { ChkNoSchedule = DateTime.Now; } } ///업무일지(주간) var tsjobweek = DateTime.Now - ChkJObreportWeek; if (tsjobweek.TotalMinutes > 30 && DateTime.Now.DayOfWeek == DayOfWeek.Monday && DateTime.Now.Hour >= 9 && DateTime.Now.Hour <= 18) { try { Mail_JobReportWeek(); } catch { } finally { ChkJObreportWeek = DateTime.Now; } } ///업무일지(일) var tsjobday = DateTime.Now - ChkJobreportDay; if (tsjobday.TotalMinutes > 15 && DateTime.Now.DayOfWeek != DayOfWeek.Saturday && DateTime.Now.DayOfWeek != DayOfWeek.Sunday && DateTime.Now.DayOfWeek != DayOfWeek.Monday && DateTime.Now.Hour >= 9 && DateTime.Now.Hour <= 18) { try { Mail_JobReportDay(); } catch { } finally { ChkJobreportDay = DateTime.Now; } } ///휴가신청(Remind) - 230611 var tsTakeaRest = DateTime.Now - ChkTakeARest; if (tsTakeaRest.TotalMinutes > 15 && DateTime.Now.DayOfWeek != DayOfWeek.Saturday && DateTime.Now.DayOfWeek != DayOfWeek.Sunday && DateTime.Now.Hour >= 17) { try { Mail_Take_a_rest_remind(); } catch { } finally { ChkTakeARest = DateTime.Now; } } } Console.WriteLine("mail end"); } } }