본문 바로가기
프로그래밍

[C#] 시스템 정보 얻어와서 메일로 전송해주기

by 건우아빠유리남편 2012. 11. 15.
반응형

시스템 정보는 연결된 드라이브정보, 이벤트로그(EventLog) 정보 정도로 하지.   대충 요런식..

//Helper 내부

 public ArrayList GetDriveInfo()
        {
            DriveInfo[] drv = DriveInfo.GetDrives();

            ArrayList DriveInfoList = new ArrayList();

            foreach (DriveInfo d in drv)
            {
                if(d.DriveType != DriveType.Fixed)
                    continue;

                DriveInfoList.Add(d.Name.Replace(":\\", "") + " : " + (d.AvailableFreeSpace * 100) / (d.TotalSize) + "%\r\n");
            }

            return DriveInfoList;
        }


        public ArrayList GetEventLogInfo()
        {
            ArrayList EventLogList = new ArrayList();

            EventLog[] log = EventLog.GetEventLogs();
            foreach (EventLog el in log)
            {
                if (el.Log != "System")
                    continue;

                EventLogEntryCollection elec = el.Entries;

                foreach (EventLogEntry ele in elec)
                {
                    if (ele.TimeWritten.Date < DateTime.Now.Date)
                        continue;

                    if (ele.EntryType == EventLogEntryType.Error)
                        EventLogList.Add(ele.Source + " : " + ele.EventID + "\r\n");
                }

            }

            return EventLogList;
        }

 

 

 

Helper helper = new Helper();

 

                //드라이브 정보 얻어옴
                ArrayList DriveList = helper.GetDriveInfo();
                string strDriveInfo = null;
                foreach (string s in DriveList)
                    strDriveInfo += s + "\t";

                //EventLog 얻어옴
                ArrayList EventLogList = helper.GetEventLogInfo();
                string strEventLogInfo = null;
                foreach (string s in EventLogList)
                    strEventLogInfo += s + "\t";

 

 

 SmtpClient client = new SmtpClient(메일주소, 메일사용포트);
                client.UseDefaultCredentials = false;
                client.EnableSsl = false;

                MailAddress from = new MailAddress("najsulman@nate.com");

                        MailAddress to = new MailAddress(strEmailAddr);
                        MailMessage message = new MailMessage(from, to);
                        message.Subject = "JiranServerManager Infomation Mail " + DateTime.Now;
                        message.Body = "This is JiranServerManager Reporting Message.=^.^=" + Environment.NewLine;
                        message.BodyEncoding = Encoding.UTF8;
                        message.Body += Environment.NewLine;

                        try
                        {
                            //동기로 메일을 보낸다.
                            client.Send(message);
                            message.Dispose();
                        }
                        catch (System.Exception ex)
                        {
                            //에러따윈 처리하지 않아
                        }

반응형

댓글