---
title: Microsoft Outlook 통합
description: "CrewAI를 위한 Microsoft Outlook 통합으로 이메일, 캘린더 및 연락처 관리."
icon: "envelope"
mode: "wide"
---

## 개요

에이전트가 Outlook 이메일, 캘린더 이벤트 및 연락처에 액세스하고 관리할 수 있도록 합니다. AI 기반 자동화로 이메일을 보내고, 메시지를 검색하고, 캘린더 이벤트를 관리하며, 연락처를 구성합니다.

## 전제 조건

Microsoft Outlook 통합을 사용하기 전에 다음 사항을 확인하세요:

- 활성 구독이 있는 [CrewAI AOP](https://app.crewai.com) 계정
- Outlook 액세스 권한이 있는 Microsoft 계정
- [통합 페이지](https://app.crewai.com/crewai_plus/connectors)를 통해 Microsoft 계정 연결

## Microsoft Outlook 통합 설정

### 1. Microsoft 계정 연결

1. [CrewAI AOP 통합](https://app.crewai.com/crewai_plus/connectors)으로 이동
2. 인증 통합 섹션에서 **Microsoft Outlook** 찾기
3. **연결**을 클릭하고 OAuth 플로우 완료
4. 이메일, 캘린더 및 연락처 액세스에 필요한 권한 부여
5. [통합 설정](https://app.crewai.com/crewai_plus/settings/integrations)에서 Enterprise Token 복사

### 2. 필요한 패키지 설치

```bash
uv add crewai-tools
```

### 3. 환경 변수 설정

<Note>
  `Agent(apps=[])`와 함께 통합을 사용하려면 Enterprise Token으로 `CREWAI_PLATFORM_INTEGRATION_TOKEN` 환경 변수를 설정해야 합니다.
</Note>

```bash
export CREWAI_PLATFORM_INTEGRATION_TOKEN="your_enterprise_token"
```

또는 `.env` 파일에 추가하세요:

```
CREWAI_PLATFORM_INTEGRATION_TOKEN=your_enterprise_token
```

## 사용 가능한 작업

<AccordionGroup>
  <Accordion title="microsoft_outlook/get_messages">
    **설명:** 사용자의 사서함에서 이메일 메시지를 가져옵니다.

    **매개변수:**
    - `top` (integer, 선택사항): 검색할 메시지 수 (최대 1000). 기본값: 10.
    - `filter` (string, 선택사항): OData 필터 표현식 (예: "isRead eq false").
    - `search` (string, 선택사항): 검색 쿼리 문자열.
    - `orderby` (string, 선택사항): 필드별 정렬 (예: "receivedDateTime desc"). 기본값: "receivedDateTime desc".
    - `select` (string, 선택사항): 반환할 특정 속성 선택.
    - `expand` (string, 선택사항): 관련 리소스를 인라인으로 확장.
  </Accordion>

  <Accordion title="microsoft_outlook/send_email">
    **설명:** 이메일 메시지를 보냅니다.

    **매개변수:**
    - `to_recipients` (array, 필수): 받는 사람의 이메일 주소 배열.
    - `cc_recipients` (array, 선택사항): 참조 받는 사람의 이메일 주소 배열.
    - `bcc_recipients` (array, 선택사항): 숨은 참조 받는 사람의 이메일 주소 배열.
    - `subject` (string, 필수): 이메일 제목.
    - `body` (string, 필수): 이메일 본문 내용.
    - `body_type` (string, 선택사항): 본문 내용 유형. 옵션: Text, HTML. 기본값: HTML.
    - `importance` (string, 선택사항): 메시지 중요도 수준. 옵션: low, normal, high. 기본값: normal.
    - `reply_to` (array, 선택사항): 회신용 이메일 주소 배열.
    - `save_to_sent_items` (boolean, 선택사항): 보낸 편지함 폴더에 메시지를 저장할지 여부. 기본값: true.
  </Accordion>

  <Accordion title="microsoft_outlook/get_calendar_events">
    **설명:** 사용자의 캘린더에서 캘린더 이벤트를 가져옵니다.

    **매개변수:**
    - `top` (integer, 선택사항): 검색할 이벤트 수 (최대 1000). 기본값: 10.
    - `skip` (integer, 선택사항): 건너뛸 이벤트 수. 기본값: 0.
    - `filter` (string, 선택사항): OData 필터 표현식 (예: "start/dateTime ge '2024-01-01T00:00:00Z'").
    - `orderby` (string, 선택사항): 필드별 정렬 (예: "start/dateTime asc"). 기본값: "start/dateTime asc".
  </Accordion>

  <Accordion title="microsoft_outlook/create_calendar_event">
    **설명:** 새 캘린더 이벤트를 만듭니다.

    **매개변수:**
    - `subject` (string, 필수): 이벤트 제목/제목.
    - `body` (string, 선택사항): 이벤트 본문/설명.
    - `start_datetime` (string, 필수): ISO 8601 형식의 시작 날짜 및 시간 (예: '2024-01-20T10:00:00').
    - `end_datetime` (string, 필수): ISO 8601 형식의 종료 날짜 및 시간.
    - `timezone` (string, 선택사항): 시간대 (예: 'Pacific Standard Time'). 기본값: UTC.
    - `location` (string, 선택사항): 이벤트 위치.
    - `attendees` (array, 선택사항): 참석자의 이메일 주소 배열.
  </Accordion>

  <Accordion title="microsoft_outlook/get_contacts">
    **설명:** 사용자의 주소록에서 연락처를 가져옵니다.

    **매개변수:**
    - `top` (integer, 선택사항): 검색할 연락처 수 (최대 1000). 기본값: 10.
    - `skip` (integer, 선택사항): 건너뛸 연락처 수. 기본값: 0.
    - `filter` (string, 선택사항): OData 필터 표현식.
    - `orderby` (string, 선택사항): 필드별 정렬 (예: "displayName asc"). 기본값: "displayName asc".
  </Accordion>

  <Accordion title="microsoft_outlook/create_contact">
    **설명:** 사용자의 주소록에 새 연락처를 만듭니다.

    **매개변수:**
    - `displayName` (string, 필수): 연락처의 표시 이름.
    - `givenName` (string, 선택사항): 연락처의 이름.
    - `surname` (string, 선택사항): 연락처의 성.
    - `emailAddresses` (array, 선택사항): 이메일 주소 배열. 각 항목은 `address` (string)와 `name` (string)이 있는 객체.
    - `businessPhones` (array, 선택사항): 사업용 전화번호 배열.
    - `homePhones` (array, 선택사항): 집 전화번호 배열.
    - `jobTitle` (string, 선택사항): 연락처의 직책.
    - `companyName` (string, 선택사항): 연락처의 회사 이름.
  </Accordion>
</AccordionGroup>

## 사용 예제

### 기본 Microsoft Outlook 에이전트 설정

```python
from crewai import Agent, Task, Crew

# Microsoft Outlook 기능을 가진 에이전트 생성
outlook_agent = Agent(
    role="이메일 어시스턴트",
    goal="이메일, 캘린더 이벤트 및 연락처를 효율적으로 관리",
    backstory="Microsoft Outlook 작업 및 커뮤니케이션 관리 전문 AI 어시스턴트.",
    apps=['microsoft_outlook']  # 모든 Outlook 작업을 사용할 수 있습니다
)

# 이메일 보내기 작업
send_email_task = Task(
    description="'colleague@example.com'에게 제목 '프로젝트 업데이트'와 본문 '안녕하세요, 프로젝트의 최신 업데이트입니다. 감사합니다.'로 이메일을 보내세요",
    agent=outlook_agent,
    expected_output="colleague@example.com에게 이메일이 성공적으로 전송됨"
)

# 작업 실행
crew = Crew(
    agents=[outlook_agent],
    tasks=[send_email_task]
)

crew.kickoff()
```

## 문제 해결

### 일반적인 문제

**인증 오류**
- Microsoft 계정이 이메일, 캘린더 및 연락처 액세스에 필요한 권한을 가지고 있는지 확인하세요.
- 필요한 범위: `Mail.Read`, `Mail.Send`, `Calendars.Read`, `Calendars.ReadWrite`, `Contacts.Read`, `Contacts.ReadWrite`.

**이메일 보내기 문제**
- `send_email`에 `to_recipients`, `subject`, `body`가 제공되는지 확인하세요.
- 이메일 주소가 올바르게 형식화되어 있는지 확인하세요.

### 도움 받기

<Card title="도움이 필요하신가요?" icon="headset" href="mailto:support@crewai.com">
  Microsoft Outlook 통합 설정 또는 문제 해결에 대한 지원이 필요하시면 지원팀에 문의하세요.
</Card>
