이메일로 작업리스트 보내기

웹사이트 관련작업들을 개발, 유지보수, 신규작업에 대한 작업목록을 만들어 일의 효율성과 또 고객들의 요구에 빠르게 대응하려고 관리자화면을 만들었다.

기본적으로 들어가야할 요구사항은

  • 모든 필드는 Editable이어야 한다. Table내에 있는 각 내용을 클릭하면 바로 수정이 가능해야한다.
  • 작업내용은 신규, 유지보수, 개발등으로 구분되어야 한다.
  • 작업의 우선순위에 따라 TableDnD 이용해서 각 Table의 Row는 마우스로 자유롭게 움직이어야 한다.
  • 우선 순위의 구분중에서도 급하게 해야하는 것은 주황색으로 맨 앞에 마크를 할 수 있어야 한다.
  • 고객들이 공식 이메일로 보내는 내용중에서 작업관리로 내용을 넘길 필요가 있을때 작업전용이메일(예:admin@doamin.com)으로 title을 “작업@작업명@작업내용”으로 보낸다.
  • 이 모든 것은 Jquery와 Bootstrap을 이용해서 처리하고, Ajax로 화면에서 “종이”처럼 작업내용을 정리하고 읽을 수 있도록 해야한다.

샘플화면.

20150315_000421

 

이메일로 작업을 보낼때 사용되는 PHP파일은  http://www.backslash.gr/가 도움이 되었고, 실제 메뉴얼은 PHP.NET이다.

$mailboxes = array(
 array(
 'mailbox' => '{받는메일서버:포트/notls}INBOX', // SSL일 경우 notls대신 ssl이라고 쓴다. 
 'username' => '아이디',
 'password' => '패스워드'
 )
);

foreach ($mailboxes as $current_mailbox) {
 $stream = @imap_open($current_mailbox[fusion_builder_container hundred_percent="yes" overflow="visible"][fusion_builder_row][fusion_builder_column type="1_1" background_position="left top" background_color="" border_size="" border_color="" border_style="solid" spacing="yes" background_image="" background_repeat="no-repeat" padding="" margin_top="0px" margin_bottom="0px" class="" id="" animation_type="" animation_speed="0.3" animation_direction="left" hide_on_mobile="no" center_content="no" min_height="none"]['mailbox'], $current_mailbox['username'], $current_mailbox['password']);
 if ($stream) { 
  $emails = imap_search($stream, 'ALL'); //모든 메일을 읽어서
   if (count($emails)){
     foreach($emails as $email_id){
      $overview = imap_fetch_overview($stream,$email_id,0); 
      imap_delete($stream, $overview[0]->msgno); // 삭제표시를하고
      $getSubject = imap_utf8($overview[0]->subject); // 한글문제는 imap_utf8으로 해결
      if(strstr($getSubject,"작업")) { // 이메일 제목에 제목이란 글자가 있으면
        $arrJob = explode("@",$getSubject);
        sql_query(" insert into 테이블 set 필드1 = '$arrJob[1]', 필드2='$arrJob[2]'");
      }
     }
     imap_expunge($stream); // 완전히 삭제.
   } 
  imap_close($stream); 
 }
}

 [/fusion_builder_column][/fusion_builder_row][/fusion_builder_container]