Skip to content

nfgarching/messages

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 

Repository files navigation

nfgarching/messages

Laravel-Paket für Messages-Verwaltung

  • IMAP-E-Mail-Verwaltung im AkV-Projektverwaltungssystem: Ermöglicht eingeloggten Benutzern, mehrere IMAP-Accounts zu verwalten und deren Postfächer, Ordner und Nachrichten im Browser zu lesen.
  • SIP-Account-Verwaltung

Inhaltsverzeichnis


Voraussetzungen

Abhängigkeit Version
PHP ^8.4
Laravel ^13
webklex/laravel-imap ^6.2
mews/purifier ^3.4

Das Paket ist über die autoload-Sektion in composer.json des Hauptprojekts eingebunden – kein separates composer require nötig.


Aktivierung

1. Service Provider in bootstrap/providers.php eintragen (bereits erledigt):

Nfgarching\Mails\LibraryServiceProvider::class,

2. Migration ausführen:

php artisan migrate --path=packages/nfgarching/mails/database/migrations/2026_05_08_000001_create_mail_accounts_table.php

Oder nach database/migrations/ kopieren und php artisan migrate ausführen.

3. Policy ist über AppServiceProvider registriert:

Gate::policy(MailAccount::class, MailAccountPolicy::class);

Funktionsübersicht

Mail-Accounts verwalten (/mail-accounts)

  • CRUD für IMAP-Zugangsdaten pro User
  • Passwörter werden verschlüsselt gespeichert (encrypted Cast)
  • „Verbindung testen"-Button via AJAX vor dem Speichern
  • Jeder User sieht und verwaltet nur seine eigenen Accounts (Policy)

Mail-Browser (/mail)

  • Ordner-Hierarchie eines Accounts browsen
  • Nachrichten paginiert anzeigen (25 pro Seite, neueste zuerst)
  • Einzelne Mail lesen – HTML wird durch mews/purifier sanitiert
  • Anhänge herunterladen

Routen

Mail-Account CRUD

Methode URL Route-Name Beschreibung
GET /mail-accounts mail-accounts.index Account-Liste
GET /mail-accounts/create mail-accounts.create Formular anlegen
POST /mail-accounts mail-accounts.store Speichern
GET /mail-accounts/{id}/edit mail-accounts.edit Formular bearbeiten
PUT /mail-accounts/{id} mail-accounts.update Aktualisieren
DELETE /mail-accounts/{id} mail-accounts.destroy Löschen
POST /mail-accounts/{id}/test mail-accounts.test Verbindungstest (JSON)

Mail-Browser

Methode URL Route-Name Beschreibung
GET /mail/{account} mail.folders Ordner-Übersicht
GET /mail/{account}/folder/{folder} mail.messages Nachrichten-Liste
GET /mail/{account}/folder/{folder}/{uid} mail.show Einzelne Nachricht
GET /mail/{account}/folder/{folder}/{uid}/attachment/{index} mail.attachment Anhang herunterladen

Alle Routen erfordern auth Middleware.


Architektur

src/
├── Controllers/
│   ├── MailAccountController.php    CRUD für Mail-Accounts
│   └── MailBrowserController.php    IMAP-Browser (Ordner, Mails, Anhänge)
├── Models/
│   └── MailAccount.php              Eloquent-Model mit encrypted password
├── Policies/
│   └── MailAccountPolicy.php        Zugriffsschutz (nur eigene Accounts)
├── Requests/
│   ├── StoreMailAccountRequest.php  Validierung Create
│   └── UpdateMailAccountRequest.php Validierung Update
├── Services/
│   └── ImapService.php              IMAP-Logik, Connection-Cache
└── Views/
    ├── mail-accounts/               CRUD-Views
    └── mail-browser/                Browser-Views

database/
├── factories/
│   └── MailAccountFactory.php
└── migrations/
    └── 2026_05_08_000001_create_mail_accounts_table.php

Detaillierte Dokumentation

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors