한국폴리텍대학교 하이테크과정/UI Path (목)

메일 첨부파일다운로드까지

복숭아 백설아 2024. 9. 4. 16:02

-get secure credentials 

미설치되어있을 경우 activity가 안 나옴. 

업데이트가 되어있지 않을 경우에도 안 나옴.

일반계정정보에 저장한 뒤 이메일(아이디)와 비밀번호(암호)로 저장한 정보를 불러오는 역할

 

-get pop3 mail ~

보안암호에 암호 변수를 설정한 것을 공통되게 넣어준다. 

이메일(아이디) 또한 마찬가지.

맨 위부터 몇 개의 메일을 읽어서 저장할 것인지

 

pop3/smtp설정, imap/smtp 설정 교재 267-268페이지 참고

속성-호스트에서 서버, 포트를 알아두기

 

열거하다 enumerate 

열거된 이메일을 for each를 사용 > for each로 시작하는 무언가가 아닌 딱, for each

mail message를 pop3 에서 message로 담았기 때문에 list mailmessage 형식으로 담아짐.

 

반복 for each 사용하고 if 사용해서 경우를 분류해줌 

 

if에 조건

currentMailMessage.Subject.Contains("RPA") 

현재 메일 메세지의 제목에 rpa가 포함되는 것을 찾기

 

일치되는 것을 찾을 땐 pattern을 먼저 검색하면 2개가 나온다.

find matching patterns : 해당되는 패턴을 찾음

replace matching patterns : 매치되는 패턴을 바꿔줌(replace)

 

날짜는 20240904는 숫자이고, 하나 이상이 필수로 들어가고, 첫번째니 0.

하나이상을 선택하면 전체 표현식은 (\d+)

 

-write line 

$"Mail에서 추출한 날짜 {standdate}"

*중괄호를 언제쓰는지

*$를 언제쓰는지

*()소괄호 []대괄호는 언제쓰는지 외우자

 

find matching patterns

패턴에 @"\(([^)]+)\)"를 넣어준다. 왜 넣어준지는 모른다. 넣어야한다고만 들었다. 저게 대체 뭐지. 근데 작동함. 나레기 언제 무능력함 탈출함? 아니야 그래도 늘어가고 있어

 

for each 문을 다시 써준다? 왜 ? 제목을 추출하고 이제는 본문 body를 추출해야하기 때문

a = b (same x)
a == b (equal)

 

b값을 a 값에 담아주는 것이 = 괄호 이다. 같다는 ==

고로 index 변수에 첫번째 0과 같다를 적어주면, index == 0 

 

then > assign 에 영업일 = currentMatch.Groups[1].Value

else > assign 에 통화 = currentMatch.Groups[1].Value

 

다음 if 문 

!(Directory.GetFiles("input").Length>0)

저장된 폴더에서 파일추출 legnth가 0보다 크면 파일이 존재한다는 의미이고 다운로드가 필요없다는 말.

!()는 부정

즉, 저 구문은 존재하지 않아서 다운로드가 필요한 상태에 적합하다. 

 

그래서 then에 들어가는 것은 파일이 저장하는 것이 됨!

save attchments 를 사용. 파일을 저장한다. currentMailMessage 와 "input"을 써준다.