{"id":50952637,"url":"https://github.com/marcin-filipiak/php_aeromail","last_synced_at":"2026-06-18T03:02:37.786Z","repository":{"id":365011733,"uuid":"1270127089","full_name":"marcin-filipiak/php_AeroMail","owner":"marcin-filipiak","description":" Lightweight, Vanilla PHP MVC Webmail Client","archived":false,"fork":false,"pushed_at":"2026-06-15T12:33:30.000Z","size":44,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-15T14:18:45.741Z","etag":null,"topics":["mail","mailclient","php","webclient"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/marcin-filipiak.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["marcin-filipiak"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":null,"buy_me_a_coffee":"marcin.filipiak","thanks_dev":null,"custom":null}},"created_at":"2026-06-15T12:13:51.000Z","updated_at":"2026-06-15T12:33:34.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/marcin-filipiak/php_AeroMail","commit_stats":null,"previous_names":["marcin-filipiak/php_aeromail"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/marcin-filipiak/php_AeroMail","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcin-filipiak%2Fphp_AeroMail","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcin-filipiak%2Fphp_AeroMail/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcin-filipiak%2Fphp_AeroMail/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcin-filipiak%2Fphp_AeroMail/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/marcin-filipiak","download_url":"https://codeload.github.com/marcin-filipiak/php_AeroMail/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcin-filipiak%2Fphp_AeroMail/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34474065,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-18T02:00:06.871Z","response_time":128,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["mail","mailclient","php","webclient"],"created_at":"2026-06-18T03:02:36.857Z","updated_at":"2026-06-18T03:02:37.776Z","avatar_url":"https://github.com/marcin-filipiak.png","language":"PHP","funding_links":["https://github.com/sponsors/marcin-filipiak","https://buymeacoffee.com/marcin.filipiak"],"categories":[],"sub_categories":[],"readme":"# ✉️ AeroMail\n### Lightweight, Vanilla PHP MVC Webmail Client\n\n**AeroMail** is a fast, lightweight, and secure webmail client built with pure PHP (Vanilla PHP) using the MVC architecture. It requires **zero heavy frameworks** (no Laravel, no Symfony) and connects directly to any standard IMAP/SMTP mail server. \n\nPerfect for developers who want a clean, dependency-free, and highly customizable mail interface.\n\n---\n\n## 🚀 Key Features\n\n- ⚡ **Zero Dependencies:** Pure PHP 8+, no Composer or external libraries required.\n- 🏗️ **True MVC Architecture:** Clean separation of concerns (Models, Views, Controllers, and a custom Router).\n- 📥 **Full IMAP Support:** Read emails, manage folders (Inbox, Sent, Trash, Spam), and mark as read/unread.\n- 📤 **Robust SMTP Sending:** STARTTLS support, multi-file attachments, Reply, and Forward functionality.\n- 📎 **Secure Attachment Handling:** Safe upload/download with built-in size and type validation.\n- 🔒 **Security First:** CSRF token protection, server-side session authentication, and no hardcoded credentials.\n- 📱 **Responsive UI:** Modern, clean CSS that works flawlessly on desktop and mobile devices.\n- 🗑️ **Smart Deletion:** Moves emails to the \"Trash\" folder instead of permanent deletion (standard mail client behavior).\n\n---\n\n## 🛠️ Prerequisites\n\n- **PHP:** 8.0 or higher\n- **PHP Extensions:** `imap`, `mbstring`, `openssl`\n- **Web Server:** Apache (with `mod_rewrite` enabled) or Nginx\n- **Mail Server:** Any server supporting IMAP (Port 993, SSL) and SMTP (Port 587, STARTTLS)\n\n---\n\n## 📂 Project Structure\n\n```text\naeromail/\n├── app/\n│   ├── config/         # Application configuration (server settings, URLs, limits)\n│   ├── core/           # Framework core (Router, base MVC classes)\n│   ├── controllers/    # Business logic (AuthController, MailController)\n│   ├── models/         # Server communication (ImapModel, SmtpModel)\n│   └── views/          # HTML templates (layout, inbox, read, compose)\n├── css/                # Stylesheets\n├── tmp/                # Temporary directory (requires write permissions)\n└── index.php           # Main entry point (Front Controller)\n```\n\n---\n\n## ⚙️ Installation\n\n1. **Clone the repository:**\n   ```bash\n   git clone git@github.com:marcin-filipiak/php_AeroMail.git\n   cd php_AeroMail\n   ```\n\n2. **Configure the application:**\n   Open `app/config/config.php` and update the settings to match your mail server:\n   ```php\n   define('MAIL_SERVER', 'mail.yourdomain.com');\n   define('MAIL_IMAP_PORT', 993);\n   define('MAIL_SMTP_PORT', 587);\n   define('APP_URL', 'https://yourdomain.com/aeromail'); // IMPORTANT: No trailing slash!\n   define('SMTP_DEBUG', false); // Set to true ONLY for troubleshooting\n   ```\n\n3. **Set directory permissions:**\n   Ensure your web server has write access to the temporary directory:\n   ```bash\n   chmod 755 tmp/\n   # Or, if your hosting requires it:\n   chmod 777 tmp/\n   ```\n\n4. **Web Server Configuration:**\n   - **Apache:** Ensure `mod_rewrite` is enabled and `AllowOverride All` is set in your VirtualHost config so the `.htaccess` file works.\n   - **Nginx:** Configure your location block to route all non-file/directory requests to `index.php?url=$1`.\n\n---\n\n## 🔒 Security \u0026 Privacy\n\nAeroMail is designed with data privacy in mind:\n1. **No Local Mail Storage:** Emails and attachments are **never saved** to the web server's disk. The application acts strictly as a secure proxy between your browser and the mail server.\n2. **Session-Based Auth:** Credentials are stored securely in PHP server-side sessions, never in browser cookies.\n3. **Encrypted Transit:** All communication with the mail server is encrypted (IMAP over SSL, SMTP over STARTTLS).\n4. **CSRF Protection:** All state-changing actions (sending, deleting) are protected by CSRF tokens.\n\n\u003e **⚠️ Production Note:** Always set `define('APP_DEBUG', false);` and `define('SMTP_DEBUG', false);` in `config.php` when deploying to production to prevent sensitive data leakage in logs.\n\n---\n\n## 🐛 Troubleshooting\n\n- **White Screen of Death:** Ensure the `php-imap` extension is installed and enabled in your `php.ini`.\n- **404 Errors on Navigation:** Verify that `mod_rewrite` is active and the `.htaccess` file is present in the root directory.\n- **Attachments show as 0 KB:** Check your PHP `upload_max_filesize` and `post_max_size` limits, and ensure the `tmp/` directory is writable.\n\n---\n\n## 🤝 Contributing\n\nHave an idea for a new feature or found a bug? Contributions are welcome!\n1. Fork the repository.\n2. Create your feature branch (`git checkout -b feature/AmazingFeature`).\n3. Commit your changes (`git commit -m 'Add some AmazingFeature'`).\n0. Push to the branch (`git push origin feature/AmazingFeature`).\n5. Open a Pull Request.\n\n---\n\n## 📜 License\n\nThis project is open-source and available under the **MIT License**. See the [LICENSE](LICENSE) file for more details.\n\n---\n*Built with ❤️ using pure, dependency-free PHP.*\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarcin-filipiak%2Fphp_aeromail","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarcin-filipiak%2Fphp_aeromail","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarcin-filipiak%2Fphp_aeromail/lists"}