ความรู้ทางธุรกิจจำนวนมากอยู่ในอีเมล, และส่วนที่คุณต้องการมักอยู่ในไฟล์แนบ: ใบเสนอราคา, การแก้ไขที่ลงนาม, ตารางที่ปรับปรุงใหม่. GroupDocs.Search.Mcp ที่ทำงานใน Docker บนเครื่องท้องถิ่นเปิดไฟล์อีเมลและคลังเก็บ (PST, OST, MSG, EML) และทำดัชนีทุกข้อความและทุกไฟล์แนบ, ดังนั้น Claude Desktop, Cursor หรือ Copilot สามารถค้นหาคลังเก็บโดยตรงและบอกได้อย่างแม่นยำว่าไฟล์แนบใดที่เป็นแหล่งที่มาของผลลัพธ์:

ดัชนีโฟลเดอร์เมล. ข้อความใดกล่าวถึงการเพิ่มราคา, และบอกว่าอย่างไรบ้าง?

เวอร์ชันขั้นตอนต่อขั้นตอนพร้อมการกำหนดค่าและการแก้ไขปัญหาอยู่ในเอกสาร: วิธีค้นหาคลังเก็บอีเมลและไฟล์แนบด้วยเอเจนต์ AI, บนเครื่องท้องถิ่น.

ทำไมอีเมลจึงยากสำหรับเอเจนต์?

เพราะคลังเก็บเป็นคอนเทนเนอร์ของคอนเทนเนอร์. PST มีโฟลเดอร์, โฟลเดอร์มีข้อความ, ข้อความมีไฟล์แนบ, และไฟล์แนบเป็นไฟล์ Word, PDF และสเปรดชีตในตัวของมันเอง. เอเจนต์ที่ใช้เครื่องมือไฟล์จะมองเห็นไฟล์ไบนารีขนาดใหญ่หนึ่งไฟล์. การส่งออกคลังเก็บเป็นไฟล์แยกก่อนทำงานได้, แต่ช้า, ทำสำเนาข้อมูลที่ละเอียดอ่อนลงดิสก์, และต้องทำใหม่เมื่อคลังเก็บเปลี่ยนแปลง. และโมเดลไม่สามารถอ่าน PST ได้เลย.

เครื่องมือค้นหาจัดการการซ้อนกันนี้เอง. แต่ละข้อความและแต่ละไฟล์แนบกลายเป็นรายการที่สามารถค้นหาได้, และผลลัพธ์บันทึกทั้งตำแหน่งของคอนเทนเนอร์และตำแหน่งภายในที่พบการจับคู่.

การจับคู่ภายในไฟล์แนบมีลักษณะอย่างไร?

นี่คือผลลัพธ์ที่เซิร์ฟเวอร์ส่งกลับในการทดสอบของเราที่มีสามข้อความ EML. วลี “price increase” ปรากฏเฉพาะในใบเสนอราคา Word ที่แนบมากับหนึ่งในนั้น; เนื้อความของข้อความเพียงแค่บอกว่า “please find the updated quotation attached”.

-> add_to_index {"documentsPath":"mail","indexName":"mail"}
<- Indexed 'mail' into index 'mail': 3 document(s) added, 3 in the index.

-> search {"query":"\"price increase\"","indexName":"mail"}
<- { "documentsFound": 1, "documents": [
     { "filePath": "mail/2026-09-18-re-q3-pricing.eml",
       "innerPath": "quotation-Q-2026-118.docx",
       "occurrences": 1 } ] }

-> get_text_fragments {"query":"\"price increase\"","indexName":"mail"}
<- === mail/2026-09-18-re-q3-pricing.eml → quotation-Q-2026-118.docx
   (1 occurrence(s)) ===
     …Due to raw material costs we announce a price increase
   of 6 percent from 2026-11-01.…

filePath คือข้อความ; innerPath คือไฟล์แนบ. เอเจนต์สามารถตอบว่า “ข้อความ Re: Q3 pricing จาก Contoso, ในใบเสนอราคา Q-2026-118 ที่แนบมานั้น: เพิ่มขึ้น 6 เปอร์เซ็นต์ตั้งแต่ 1 พฤศจิกายน”, และทุกส่วนของประโยคนี้สามารถตรวจสอบได้.

mail/2026-09-18-re-q3-pricing.eml          <- filePath
  |- body: "please find the updated quotation attached"
  '- attachment: quotation-Q-2026-118.docx  <- innerPath
        "...we announce a price increase of 6 percent..."

คำถามที่ทำงานกับเมล

ภาษาคำค้นทั่วไปใช้ได้, และรูปแบบบางอย่างมีประโยชน์เป็นพิเศษสำหรับการสื่อสาร. ทั้งหมดนี้ได้ถูกทดสอบกับกล่องเมลทดสอบเดียวกัน:

  • “ข้อความใดจาก Fabrikam กล่าวถึงความล่าช้าการจัดส่ง?”: fabrikam AND delay. ที่อยู่อีเมลของผู้ส่งถูกทำดัชนีพร้อมกับข้อความ, ดังนั้น contoso ยังพบใบแจ้งหนี้ที่เนื้อความไม่เคยกล่าวถึงบริษัทนั้น.
  • “ค้นหาอีเมลทั้งหมดที่กล่าวถึงคำสั่งซื้อ 77812” : 77812. ตัวเลขเต็มเป็นคำ.
  • “ใบแจ้งหนี้ใดที่ครบกำหนดในเดือนตุลาคม?”: invoice AND content: daterange(2026-10-01 ~~ 2026-10-31). จะจับคู่วันที่ที่เขียนในข้อความ, เช่น “due on 2026-10-22”. คำสั่ง content: มีความสำคัญ: หากไม่มี, ช่วงวันที่ยังจับคู่กับวันที่ที่เอนจินบันทึกสำหรับแต่ละไฟล์ด้วย.

ทำไมการทำงานบนเครื่องท้องถิ่นจึงสำคัญกว่าสำหรับเมล

อีเมลเป็นแหล่งที่มีข้อมูลที่ละเอียดอ่อน: ข้อมูลส่วนบุคคล, การเจรจาต่อรอง, กระทู้ HR, คำแนะนำทางกฎหมาย. เครื่องมือค้นหาที่ต้องอัปโหลดหรือซิงค์กล่องเมลไปยังบริการเป็นสิ่งที่หลายทีมไม่ยอมรับ. ที่นี่คลังเก็บถูกเมานท์แบบอ่านอย่างเดียวเข้าไปในคอนเทนเนอร์บนเครื่อง, ทำดัชนีที่นั่น, และค้นหาที่นั่น. ข้อความที่ออกไปเพียงข้อความที่เอเจนต์อ้างอิงในคำตอบ, และเมื่อใช้โมเดลที่โฮสต์บนเครื่องท้องถิ่น, แม้แต่ข้อความนั้นก็ไม่ออกไป.

สำหรับการตั้งค่าที่แน่นหนาขึ้น, เมานท์คลังเก็บแบบอ่านอย่างเดียวและให้ดัชนีมีโวลุ่มของตัวเอง:

docker run --rm -i \
  -v /srv/mail:/data:ro \
  -v /srv/mail-index:/index -e GROUPDOCS_MCP_INDEX_PATH=/index \
  ghcr.io/groupdocs-search/search-net-mcp:latest

การกำหนดขอบเขตคลังเก็บขนาดใหญ่

คลังเก็บที่มีข้อความหลายหมื่นฉบับทำดัชนีได้ดีด้วยใบอนุญาต, แต่ควรทำอย่างรอบคอบ. ทำดัชนีตามโฟลเดอร์หรือปีเป็นเส้นทางแยก (mail/2025, mail/2026), เพื่อให้สามารถลบหรือสร้างใหม่ตามปีได้โดยอิสระ, เนื่องจากเอนจินลบเส้นทางที่ทำดัชนีทั้งหมดแทนการลบไฟล์เดี่ยว. เก็บเมลในดัชนีของมันเอง, แยกจากสัญญาหรือรายงาน, เพื่อให้คำถามเกี่ยวกับการสื่อสารไม่ต้องคัดกรองข้อมูลอื่นทั้งหมด. และเมื่อคลังเก็บเติบโต, update_index จะดึงข้อความใหม่เข้ามาโดยไม่ต้องอ่านซ้ำข้อความเก่า.

ขีดจำกัดที่ต้องระวัง

  • ในโหมดประเมินผล ดัชนีจะเก็บได้สูงสุด 100 เอกสารและการค้นหาจะคืนผลสูงสุด 10 รายการ, และ ทุกข้อความและไฟล์แนบนับเป็นเอกสาร, ดังนั้นคลังเก็บจริงต้องมีใบอนุญาต. เรียก get_license_status ก่อน.
  • PST ขนาดใหญ่ต้องใช้เวลาทำดัชนี: ทุกข้อความและไฟล์แนบต้องเปิด. ทำดัชนีครั้งแรก, แล้วใช้ update_index.
  • ไฟล์แนบที่สแกนโดยไม่มีชั้นข้อความจะทำดัชนีเฉพาะคุณสมบัติไฟล์; ไม่มี OCR.
  • ใช้ Docker เท่านั้น; บน Linux ให้เพิ่ม --user "$(id -u):$(id -g)" เว้นแต่คุณใช้การตั้งค่าอ่านอย่างเดียวข้างต้น.

คำถามที่พบบ่อย

ฉันสามารถค้นหาไฟล์ PST ด้วย AI ได้โดยไม่ต้องใช้ Outlook หรือไม่?
ได้. เอนจินอ่าน PST, OST, MSG และ EML โดยตรง; Outlook ไม่ได้มีส่วนเกี่ยวข้อง, และไม่มีการส่งออกใด ๆ.

มันค้นหาภายในไฟล์แนบของอีเมลหรือไม่?
ได้. ไฟล์แนบถูกทำดัชนีเป็นรายการของข้อความของมัน, และการจับคู่ภายในไฟล์แนบจะกลับมาพร้อมกับ innerPath ที่ระบุไฟล์แนบนั้น.

กล่องเมลของฉันถูกอัปโหลดไปที่ไหนหรือไม่?
ไม่. มันถูกอ่านภายในคอนเทนเนอร์ท้องถิ่น; เพียงข้อความที่เอเจนต์อ้างอิงถึงเท่านั้นที่ถึงผู้ให้บริการโมเดลของคุณ.

ไปให้ลึกขึ้น