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

 

회사에서 주요 업무처리는 이메일로 이루어지게 되는데요, 아웃룩(Outlook)에서 특정 수취인에게 메일을 받은 경우 메일 내용을 메세지박스(Message Box)로 출력해주는 RPA 프로세스를 다뤄보겠습니다.

 

 

간단한 내용이기 때문에 빠르게 살펴보겠습니다.

 

1) "Get Outlook Mail Messages" 액티비티를 불러온다.

만약에 Activities Panel에서 "Get Outlook Mail Messages"를 검색했는데 검색결과가 없다면 상단의 "Manage Packages"에서 outlook으로 검색 후 새로운 액티비티를 다운받아주시면 됩니다.

 


Get Outlook Mail Messages 

"Get Outlook Mail Messages"의 Properties를 보면 Input과 Options가 있는데요, 아래 화면의 우측 빨간칸을 참고하시면 됩니다.

 

 

Input - Account ▶ 사용하시는 아웃룩 이메일 주소를 입력해주시면 됩니다. morningsusan@outlook.com 이런식이 되겠죠?

 

Input - MailFolder ▶ 어떤 폴더에 들어있는 메일을 읽을지 선택하는 부분인데 별도의 폴더가 없다면 "받은 편지함"으로 기재해주시면 됩니다. 아웃룩을 영문버전으로 사용하신다면 "Inbox"가 되겠죠?

 

 

Options - MarkAsRead RPA로 읽은 메일을 "읽음"으로 표기하는 속성입니다. 저는 별도로 체크박스에 체크하지 않았기 때문에 실제로 아웃룩에서 읽지않은 메일을 RPA로 읽더라도 아웃룩상에서 아무 변화가 없을겁니다.

 

Options - OnlyUnreadMessages ▶ MailFolder에서 안읽은 메일만 RPA로 읽어오는 속성입니다. 저는 별도로 체크박스에 체크하지 않았기 때문에 아웃룩에서 읽은 메일이든 안읽은 메일이든 상관없이 RPA로 읽어오게됩니다.

 

Options - Top ▶ 상위 메일에서 몇개의 메일을 읽어올지 지정할 수 있는 속성입니다. 기본값은 30으로 설정되어 있는데 편의에 따라 변경하셔도 됩니다.<

 

 

Output - Messages ▶ RPA로 읽은 메일을 저장할 변수로 변수의 유형은 리스트(List)입니다. 저는 readMAil이라는 변수명을 부여해줬는데요, 이제 이 변수안에는 RPA로 읽어온 30개의 메일이 들어있습니다.

 

 

2) "For Each" 액티비티를 불러온다. 

 

RPA를 통해서 상위 메일에서 30개의 메일을 읽어왔고 readMail이라는 리스트 유형의 변수에 넣어줬으니까, 이제 이 값을 꺼내야 메일 내용을 확인할 수가 있겠죠? 이때 필요한 액티비티가 바로 반복문의 일종인 "For Each"입니다. 리스트는 일종의 모음(Collection)이기 때문에 순서대로 하나씩 꺼내줘야 합니다.


For Each

 

For Each 액티비티를 이용해서 readMail 리스트에 있는 30개의 item을 하나씩 꺼내오겠습니다. For Each 액티비티의 속성(Properties)을 보시면 TypeArgument라는 부분이 있는데 이 부분을 잘 설정해주셔야 합니다. readMail은 리스트 유형의 변수였죠? 그런데 이 변수가 담고 있는 데이터는 어떤 데이터인가요? 

 

그렇죠, 메일입니다. 그래서 reaMail을 보시면 정확한 변수 유형이 List<MailMessage>입니다. 메일을 담고 있는 리스트라는 뜻이죠. 이제 For Each 액티비티의 TypeArgument(유형인수)를 MailMessage로 설정해주겠습니다. ▼를 눌렀는데도 선택지에 없는 경우에는 Browse for Types..를 클릭하시고 검색하시면 됩니다.

 

 

 

하/지/만,

 

우리가 읽어온 item은 MailMessage 유형이기 때문에 문자열(String)으로 바로 출력할 수가 없습니다. 우리가 원하는 내용은 메일 본문 내용이기 때문에 MailMessage에서 별도로 추출하는 과정이 필요합니다. 메일 본문 내용만 있으면 혼동될 수 있으니 보내는 사람까지 추가해보겠습니다. 데이터를 어떻게 추출할 수 있을까요?

 

 

2개의 변수를 만들어보겠습니다. Assign 액티비티를 사용해서 메일을 보내는 사람 Sender와 메일 본문 내용 Body을 추출하겠습니다.

 

Sender = item.From.ToString ▶ readMail 리스트에서 가져온 MailMessage 유형의 item에서 보내는 사람(From)만 추출해서 문자열로 출력한다(ToString).

 

Body = item.Body.ToString ▶ readMail 리스트에서 가져온 MailMessage 유형의 item에서 메일 본문(Body)만 추출해서 문자열로 출력한다(ToString).

 

 

마지막으로 Message Box 액티비티를 이용해서 위에서 추출한 Sender + Body를 출력하겠습니다. Debug File을 클릭해서 RPA 프로세스를 실행해볼까요? 

 

 

Sender 부분은 제가 삭제했지만 위 화면에서 빨간칸을 봤을 때, Sender 와 Body가 모두 Message Box 액티비티를 통해 잘 출력되었음을 확인할 수 있습니다.

 

이처럼, RPA로 아웃룩(Outlook) 메일을 읽어오는 방법은 어렵지 않으니까요, 혹시나 많은 이메일 업무로 힘드시다면 Uipath를 이용해서 RPA 프로세르를 만들어보시는 것도 좋을 것 같습니다 :)

 

 

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