{"_id":"outlook-email-parser","name":"outlook-email-parser","dist-tags":{"latest":"2.0.0"},"versions":{"2.0.0":{"name":"outlook-email-parser","version":"2.0.0","description":"Parse Microsoft Outlook email files (MSG, EML, PST, OFT) with full support for attachments, embedded images, and various encodings","main":"dist/index.js","module":"dist/index.mjs","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"build":"tsup","dev":"tsup --watch","test":"vitest run","test:watch":"vitest","lint":"eslint src","prepublishOnly":"npm run build"},"keywords":["outlook","msg","eml","pst","oft","email","parser","microsoft","office","mail","attachment","cfb","ole"],"author":"","license":"MIT","repository":{"type":"git","url":""},"homepage":"","dependencies":{"iconv-lite":"^0.7.1","mailparser":"^3.9.1"},"devDependencies":{"@types/mailparser":"^3.4.6","@types/node":"^20","tsup":"^8.3.0","typescript":"^5","vitest":"^2.1.0"},"engines":{"node":">=18"},"_id":"outlook-email-parser@2.0.0","_nodeVersion":"23.9.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-9goHCB4KVTiNjwo4l4Z4gwfckYMX3WXP7jTak852Pc1qpz6ms5ne1ANZYzET0YR5SxcCiu8FtT54GOPMFnEaYw==","shasum":"a51b2894caf6fc7cefcb13f594d425c686da5b16","tarball":"https://registry.npmjs.org/outlook-email-parser/-/outlook-email-parser-2.0.0.tgz","fileCount":9,"unpackedSize":294234,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD6XlqU47rV/bHt44NheJPpuMHL2j4rF5cqlKzdjqabmAIhAOdoKzfyHupQjmADHARsw7rREfM7+gXXNnsKspjaNBoq"}]},"_npmUser":{"name":"khoe.le","email":"khoe.le.hutech@gmail.com"},"directories":{},"maintainers":[{"name":"khoe.le","email":"khoe.le.hutech@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/outlook-email-parser_2.0.0_1767839976154_0.30676431778471636"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-08T02:39:36.082Z","2.0.0":"2026-01-08T02:39:36.357Z","modified":"2026-01-08T02:39:36.638Z"},"maintainers":[{"name":"khoe.le","email":"khoe.le.hutech@gmail.com"}],"description":"Parse Microsoft Outlook email files (MSG, EML, PST, OFT) with full support for attachments, embedded images, and various encodings","keywords":["outlook","msg","eml","pst","oft","email","parser","microsoft","office","mail","attachment","cfb","ole"],"repository":{"type":"git","url":""},"license":"MIT","readme":"# outlook-email-parser\n\nParse Microsoft Outlook email files (MSG, EML, OFT) with full support for attachments, embedded images, and various character encodings.\n\n## Features\n\n- 📧 Parse MSG files (Microsoft Outlook Message format)\n- 📨 Parse EML files (Standard email format)\n- 📎 Extract attachments with content\n- 🖼️ Support for embedded images (CID references)\n- 🌍 Multi-language support (Vietnamese, Chinese, Japanese, etc.)\n- 📝 Extract both HTML and plain text content\n- 🔧 Zero external binary dependencies\n\n## Installation\n\n```bash\nnpm install outlook-email-parser\n# or\nyarn add outlook-email-parser\n# or\npnpm add outlook-email-parser\n```\n\n## Usage\n\n### Basic Usage\n\n```typescript\nimport { parseEmail } from 'outlook-email-parser';\nimport { readFileSync } from 'fs';\n\n// Parse any supported email file\nconst buffer = readFileSync('email.msg');\nconst result = await parseEmail(buffer, 'email.msg');\n\nconsole.log(result.data.subject);\nconsole.log(result.data.from);\nconsole.log(result.data.to);\nconsole.log(result.data.htmlContent);\nconsole.log(result.data.attachments);\n```\n\n### Parse MSG Files\n\n```typescript\nimport { parseMsgBuffer } from 'outlook-email-parser';\nimport { readFileSync } from 'fs';\n\nconst buffer = readFileSync('message.msg');\nconst email = parseMsgBuffer(buffer);\n\nconsole.log(email.subject);\nconsole.log(email.from.name, email.from.email);\nconsole.log(email.textContent);\n```\n\n### Parse EML Files\n\n```typescript\nimport { parseEmlBuffer } from 'outlook-email-parser';\nimport { readFileSync } from 'fs';\n\nconst buffer = readFileSync('message.eml');\nconst email = await parseEmlBuffer(buffer);\n\nconsole.log(email.subject);\nconsole.log(email.htmlContent);\n```\n\n### Working with Attachments\n\n```typescript\nimport { parseEmail } from 'outlook-email-parser';\nimport { readFileSync, writeFileSync } from 'fs';\n\nconst buffer = readFileSync('email.msg');\nconst result = await parseEmail(buffer, 'email.msg');\n\nfor (const attachment of result.data.attachments) {\n  console.log(`Attachment: ${attachment.filename} (${attachment.size} bytes)`);\n  \n  // Save attachment to disk\n  if (attachment.content) {\n    const data = Buffer.from(attachment.content, 'base64');\n    writeFileSync(attachment.filename, data);\n  }\n}\n```\n\n### Parser Options\n\n```typescript\nimport { parseEmail } from 'outlook-email-parser';\n\nconst result = await parseEmail(buffer, 'email.msg', {\n  // Include attachment content (base64). Default: true\n  includeAttachmentContent: true,\n  \n  // Maximum attachment size to include content (bytes). Default: 10MB\n  maxAttachmentSize: 10 * 1024 * 1024,\n});\n```\n\n## API Reference\n\n### `parseEmail(buffer, fileName, options?)`\n\nParse an email file with automatic format detection.\n\n- `buffer`: `Buffer` - The file content\n- `fileName`: `string` - The filename (used for format detection)\n- `options`: `ParserOptions` - Optional parser configuration\n\nReturns: `Promise<ParseResult>`\n\n### `parseMsgBuffer(buffer, options?)`\n\nParse an MSG file buffer.\n\n- `buffer`: `Buffer` - The MSG file content\n- `options`: `ParserOptions` - Optional parser configuration\n\nReturns: `ParsedEmail`\n\n### `parseEmlBuffer(buffer, options?)`\n\nParse an EML file buffer.\n\n- `buffer`: `Buffer` - The EML file content\n- `options`: `ParserOptions` - Optional parser configuration\n\nReturns: `Promise<ParsedEmail>`\n\n### `isValidMsgFile(buffer)`\n\nCheck if a buffer is a valid MSG file.\n\nReturns: `boolean`\n\n### `isValidEmlFile(buffer)`\n\nCheck if a buffer looks like a valid EML file.\n\nReturns: `boolean`\n\n## Types\n\n```typescript\ninterface ParsedEmail {\n  subject: string;\n  from: EmailAddress;\n  to?: string;\n  cc?: string;\n  bcc?: string;\n  replyTo?: string;\n  sentDate?: string;\n  receivedDate?: string;\n  priority?: number;\n  importance?: number;\n  textContent?: string;\n  htmlContent?: string;\n  attachments: EmailAttachment[];\n}\n\ninterface EmailAddress {\n  name?: string;\n  email?: string;\n}\n\ninterface EmailAttachment {\n  filename: string;\n  size: number;\n  contentId?: string;\n  content?: string; // base64 encoded\n  mimeType?: string;\n}\n\ninterface ParserOptions {\n  includeAttachmentContent?: boolean;\n  maxAttachmentSize?: number;\n}\n```\n\n## Supported Formats\n\n| Format | Extension | Description |\n|--------|-----------|-------------|\n| MSG | `.msg` | Microsoft Outlook Message |\n| OFT | `.oft` | Microsoft Outlook Template |\n| EML | `.eml` | Standard email format (RFC 822) |\n\n## Character Encoding Support\n\nThe parser automatically detects and handles various character encodings:\n\n- UTF-8\n- UTF-16LE/BE\n- Windows-1252 (Western European)\n- Windows-1258 (Vietnamese)\n- ISO-8859-1 (Latin-1)\n- And many more via iconv-lite\n\n## License\n\nMIT\n","readmeFilename":"README.md","_rev":"1-591dd1263301e9b16c4d64768bf1b377"}