안녕하세요 모닝수잔입니다 :)

 

업무를 하다 보면 수 많은 파일들을 이메일로 주고받게 되는데요, 그 중에서도 중요한 파일은 PC에 따로 저장해두기도 합니다. 하지만 이메일에 첨부된 파일을 하나하나 저장하기가 번거로울 때도 있는데요? 오늘은 해당 과정을 Uipath RPA를 활용해서 간단하게 만들어보려고 합니다. 보너스로, 저장한 파일들을 Excel RDBMerge를 활용해서 하나의 파일로 통합하는 프로세스까지 다뤄보겠습니다.

 

 

Uipath RPA를 사용해서 메일에 첨부된 첨부파일을 저장하는 방법은 아주 간단합니다. 바로 "Save Attachments" 액티비티가 있기 때문인데요, Save Attachments 액티비티에 대해 조금 더 자세히 알아보겠습니다.

 

1)"Get Outlook Mail Messages" 액티비티를 불러와서 이메일을 추출합니다.

아래 화면 왼쪽 빨간칸처럼 Activities 패널에서 "Get Outlook Mail Messges" 액티비티를 검색해서 더블클릭하거나, 드래그앤드롭으로 가운데 Main 창으로 끌어다놓습니다. Get Outlook Mail Message 액티비티는 특정 메일폴더(MailFolder)에 있는 이메일을 (최근 이메일부터) 원하는 수만큼 list 형식으로 추출해주는 액티비티인데요, 아래 화면 오른쪽 빨간칸의 Properties 패널을 보시겠습니다.

 

▶ Input: Input의 MailFolder 칸에는 원하는 메일을 추출할 메일폴더를 지정해주시면 됩니다. 저는 아웃룩의 "받은 편지함"으로 설정했는데요, 문자열(String) 형식이므로 큰 따옴표 "" 안에 넣어서 기재해줍니다.

 

▶ Option: MarkAsRead는 메일을 추출한 경우 해당 메일을 아웃룩상에서 읽은 메일로 표기할지 여부를 체크하는 부분입니다. 원하시는 경우에 체크해주시면 되겠죠? OnlyUnreadMessages는 메일을 추출하는 경우 읽은메일/안읽은메일을 모두 추출할지 아니면 안읽은메일만 추출할지 선택하는 부분입니다. 저는 안읽은 메일만 추출하는게 편리하기 때문에 해당 체크박스에 체크표시를 해뒀습니다. 마지막으로 Top은 위에서부터(가장 최근 메일에서부터) 몇 개의 메일을 추출해올지 정하는 부분입니다. 숫자(Int32)형식이므로 숫자를 넣어주시면 됩니다.

 

※ Top 부분에는 숫자(Int32)를 바로 기재하셔도 되지만, 저처럼 emailcount라는 Int32 형식의 변수를 만들어서 넣어둘 수도 있답니다. emailcount라는 값에 1이라는 값을 주면 가장 최근 메일 1개만 읽어오고, 10이라는 값을 주면 가장 최근 메일 10개를 읽어오게 될 겁니다.

 

▶ Output: Messages 부분은 추출한 메일들을 list형식으로 담는 곳이므로 list 형식의 변수를 넣어주면 됩니다.  저는 listMails라는 이름으로 list 형식의 변수를 만들어서 넣어줬습니다. 잘 아시다시피, 변수를 만드는 방법은 Messages 칸안에 커서를 두고 Ctrl + K를 누르시면 되겠죠?

 

 

2) "For Each" 액티비티를 불러와서 list 형식의 이메일을 개별 이메일로 하나씩 추출해줍니다.

1)에서 추출한 이메일은 하나의 꾸러미인 list 형식으로 추출되었기 때문에 이 상태에서 첨부파일을 저장하려고 하면 에러가 발생합니다. 여러 개의 이메일이 있는 list에서 순서대로 하나씩 낱개의 이메일을 추출해줄 필요가 있는데요, 이때 사용할 수 있는 액티비티가 바로 "For Each" 액티비티입니다. ForEach ☆ in ★ 형식에서 ☆에는 이미 item이라는 변수가 들어가 있는데 저는 Mail이라는 이름으로 바꿔봤습니다. ★에는 추출대상인 list 형식의 변수 listMails를 넣어주시면 되는데, 아래 화면 오른쪽 빨간칸을 보시면 Misc - Values 부분에 동일하게 listMails가 들어가 있음을 확인하실 수 있습니다.

 

▶ TypeArgument: "ForEach" 액티비티에서 한가지 주의하실 점은 바로 인수형식(TypeArgument)을 지정해주는 것입니다. 우리는 지금 list형식의 이메일 변수에서 개별 이메일을 추출하려고 하죠? 그렇다면 인수형식이 단순 문자열(String)이나 숫자(Int32)일까요? 아니죠. 바로 MailMessage 형식입니다. TypeArgument에서 Browse for Type...를 클릭하시면 여러 가지 형식이 있는데 그 중에서도 "System.Net.Mail.MailMessages"를 선택해주세요. 이렇게 설정함으로써, ForEach ☆ in ★에서 ☆부분이 MailMessage 형식의 변수가 된답니다.

 

※ ForEach 액티비티의 ☆에는 기본적으로 item이라는 변수가 들어가 있는데, TypeArgument에서 지정해주는 인수형식에 따라 변수형식이 달라집니다. 그래서 Ctrl + K를 누르지 않아도 item이라는 변수명 대신에 입력하는 값이 올바른 변수형식을 갖는 변수로 생성된답니다.

 

 

3) "Save Attachments" 액티비티를 불러와서 개별 이메일의 첨부파일을 지정된 경로에 저장해줍니다.

이제 우리의 목적대로 이메일의 첨부파일을 저장해보겠습니다. "Save Attachments" 액티비티에서 첫번째 칸에는 MailMessage 형태의 변수를 넣어줍니다. 2)에서 우리가 추출한 개별 이메일인 Mail 변수를 넣어주면 되겠죠? 그리고 두번째 칸에는 해당 이메일에서 추출한 첨부파일을 저장할 폴더경로(FolderPath)를 지정해주시면 되는데요, 바탕화면의 "첨부파일"이라는 폴더가 있다면 폴더경로는 "C:\Desktop\첨부파일"이 됩니다. 아래 화면 빨간칸에서는 개인정보보호를 위해 폴더경로의 Desktop 이하 부분은 지웠으니 참고해주세요 :)

 

 

 

그럼 저는 "받은 편지함"에 A, B, C라는 첨부파일을 가진 이메일 3개를 두고 앞서 만든 프로세스를 실행해보겠습니다. 1)에서 Option - Top 부분에 emailcount 변수에 3이라는 값을 주면 아래와 같이 실행되겠죠? A, B, C 엑셀파일에는 각각 "수잔의", "모닝", "스토리"라는 단어를 A1 셀에 적어두었습니다. 이제 이 3개의 엑셀파일을 하나로 합쳐볼까요?

 

 

엑셀에는 유용한 기능이 참 많이 있는데 최근에 그 기능을 더욱 업그레이드 시켜줄 유용한 파일을 하나 발견했으니 바로 여러 개의 파일을 통합해주는 RDBMerge입니다. 

 

RDBMerge2007-2016.zip
0.06MB

※ 혹시 저작권의 문제가 있다면 바로 삭제하도록 하겠습니다 :)

 

RDBMerge를 설치하시면 엑셀 DATA 탭에 RDBMerge Add-in Merge라고 새로운 메뉴가 생성될텐데요, 클릭하시면 새로운 창이 하나 뜹니다. 자세한 설명은 아래 화면 빨간칸을 참고해주세요.

 

▷ Folder Location: "Browse"를 클릭해서 통합을 원하시는 파일들이 저장된 폴더경로를 선택합니다. 저는 A, B, C 엑셀파일이 저장된 "첨부파일" 폴더를 선택했습니다.

 

Which Files: 통합할 파일들의 형식을 지정해주는 부분인데요, XL?로 선택하시면 xlsx, xlsm 등 모든 형식이 포함되므로 XL?로 선택해주시면 됩니다. 그리고 "Merge All files from the folder in the Files location section"을 선택해주시면 폴더경로에 있는 모든 파일이 통합됩니다. (특정 이름을 포함한 파일만 통합하고 싶으시다면 "Merge all files with a name contains ..."로 선택 후 특정 이름을 Contains 부분에 넣어주시면 됩니다.)

 

Which Worksheet(s): 특정 시트만 통합할지 모든 시트를 통합할지 결정하는 부분으로 저는 간단한 엑셀파일을 통합하기 때문에 모든 시트를 통합하는 "Merge All worksheets"를 선택했습니다. (특정 이름을 포함한 시트만 통합하고 싶으시다면 "Merge every worksheet with a name contains ..."로 선택 후 특정 이름을 Contains 부분에 넣어주시면 됩니다.)

 

Which range: 시트에서 통합할 범위를 선택하는 부분으로 전체 범위를 통합한다면 "First cell A1 till last cell on Worksheet"를 선택해주시면 됩니다. (특정 범위만 통합하고 싶으시다면 "Fixed Range를 선택하고 시작셀:마지막셀을 적어주시면 됩니다.)

 

마지막으로 "Paste as values" 부분에 체크하시고 "Merge"를 클릭하시면 폴더경로에 있는 모든 엑셀파일의 모든 시트의 모든 범위가 통합되어서 새로운 엑셀파일로 생성되는데요, 아래 화면 왼쪽 빨간칸처럼 A, B, C 3개 엑셀파일의 "수잔의", "모닝", "스토리"라는 값이 통합된 모습을 확인하실 수 있습니다.

 

 

오늘 다뤄본 Uipath RPA를 사용해서 메일 첨부파일을 저장하는 기능과 RDPMerge를 사용해서 여러 엑셀 파일을 하나로 통합하는 기능은 제가 최근에 업무에서 가장 유용하게 사용하고 있는 기능이랍니다. 모두들 각자의 상황에 맞게 응용해서 사용하신다면 업무시간을 10분이라도 줄이실 수 있을거에요. 그럼 오늘도 좋은 하루 되세요 :)

 

 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기