{ "cells": [ { "cell_type": "markdown", "id": "9fdbd55d", "metadata": {}, "source": [ "# Email\n", "\n", "This notebook shows how to load email (`.eml`) or `Microsoft Outlook` (`.msg`) files." ] }, { "cell_type": "markdown", "id": "89caa348", "metadata": {}, "source": [ "## Using Unstructured" ] }, { "cell_type": "code", "execution_count": null, "id": "226e50aa-407d-43d9-a81d-f6706298b10c", "metadata": { "tags": [] }, "outputs": [], "source": [ "#!pip install unstructured" ] }, { "cell_type": "code", "execution_count": 5, "id": "40cd9806", "metadata": { "tags": [] }, "outputs": [], "source": [ "from langchain.document_loaders import UnstructuredEmailLoader" ] }, { "cell_type": "code", "execution_count": 6, "id": "2d20b852", "metadata": { "tags": [] }, "outputs": [], "source": [ "loader = UnstructuredEmailLoader('example_data/fake-email.eml')" ] }, { "cell_type": "code", "execution_count": null, "id": "579fa702", "metadata": { "tags": [] }, "outputs": [], "source": [ "data = loader.load()" ] }, { "cell_type": "code", "execution_count": 8, "id": "90c1d899", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/plain": [ "[Document(page_content='This is a test email to use for unit tests.\\n\\nImportant points:\\n\\nRoses are red\\n\\nViolets are blue', metadata={'source': 'example_data/fake-email.eml'})]" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data" ] }, { "cell_type": "markdown", "id": "8bf50cba", "metadata": {}, "source": [ "### Retain Elements\n", "\n", "Under the hood, Unstructured creates different \"elements\" for different chunks of text. By default we combine those together, but you can easily keep that separation by specifying `mode=\"elements\"`." ] }, { "cell_type": "code", "execution_count": 5, "id": "b9592eaf", "metadata": {}, "outputs": [], "source": [ "loader = UnstructuredEmailLoader('example_data/fake-email.eml', mode=\"elements\")" ] }, { "cell_type": "code", "execution_count": 6, "id": "0b16d03f", "metadata": {}, "outputs": [], "source": [ "data = loader.load()" ] }, { "cell_type": "code", "execution_count": 7, "id": "d7bdc5e5", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Document(page_content='This is a test email to use for unit tests.', lookup_str='', metadata={'source': 'example_data/fake-email.eml'}, lookup_index=0)" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data[0]" ] }, { "cell_type": "markdown", "id": "6a074515", "metadata": {}, "source": [ "## Using OutlookMessageLoader" ] }, { "cell_type": "code", "execution_count": null, "id": "058e670e-9964-44ee-b888-44f23ffb9310", "metadata": {}, "outputs": [], "source": [ "#!pip install extract_msg" ] }, { "cell_type": "code", "execution_count": 8, "id": "1e7a8444", "metadata": {}, "outputs": [], "source": [ "from langchain.document_loaders import OutlookMessageLoader" ] }, { "cell_type": "code", "execution_count": 9, "id": "77a055e6", "metadata": {}, "outputs": [], "source": [ "loader = OutlookMessageLoader('example_data/fake-email.msg')" ] }, { "cell_type": "code", "execution_count": 10, "id": "789882de", "metadata": {}, "outputs": [], "source": [ "data = loader.load()" ] }, { "cell_type": "code", "execution_count": 11, "id": "46aa0632", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Document(page_content='This is a test email to experiment with the MS Outlook MSG Extractor\\r\\n\\r\\n\\r\\n-- \\r\\n\\r\\n\\r\\nKind regards\\r\\n\\r\\n\\r\\n\\r\\n\\r\\nBrian Zhou\\r\\n\\r\\n', metadata={'subject': 'Test for TIF files', 'sender': 'Brian Zhou ', 'date': 'Mon, 18 Nov 2013 16:26:24 +0800'})" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data[0]" ] }, { "cell_type": "code", "execution_count": null, "id": "2b223ce2", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.6" } }, "nbformat": 4, "nbformat_minor": 5 }