Neah/README.md
2025-04-26 11:36:35 +02:00

1.9 KiB

Neah Email Application

A modern email client built with Next.js, featuring email composition, viewing, and management capabilities.

Email Processing Workflow

The application handles email processing through a centralized workflow:

  1. Email Fetching: Emails are fetched through the /api/courrier endpoints using user credentials stored in the database.

  2. Email Parsing: Raw email content is parsed using:

    • Server-side: simpleParser from mailparser library via /api/parse-email API route
    • Client-side: decodeEmail function in lib/mail-parser-wrapper.ts
  3. HTML Sanitization: Email HTML content is sanitized and processed using:

    • cleanHtml function in lib/mail-parser-wrapper.ts (centralized implementation)
    • CSS styles are optionally preserved and scoped to prevent leakage
  4. Email Display: Sanitized content is rendered in the UI with proper styling and security measures

  5. Email Composition: The ComposeEmail component handles email creation, replying, and forwarding

    • initializeForwardedEmail function prepares forwarded email content
    • Email is sent through the /api/courrier/send endpoint

Deprecated Functions

Several functions have been marked as deprecated in favor of centralized implementations:

  • Check the DEPRECATED_FUNCTIONS.md file for a complete list of deprecated functions and their replacements.

Project Structure

  • /app - Main application routes and API endpoints
  • /components - Reusable React components
  • /lib - Utility functions and services
    • /services - Domain-specific services, including email service
    • /server - Server-side utilities

Dependencies

  • Next.js 15
  • React 18
  • ImapFlow for IMAP interactions
  • Mailparser for email parsing
  • Prisma for database interactions
  • Tailwind CSS for styling

Development

# Install dependencies
npm install

# Start the development server
npm run dev

# Build for production
npm run build