The Sample Email Server Integration provides a sample implementation of an email server integration in PanelAlpha.
- Manage Email Domains
- List All Email Domains
- Find Email Domain
- Create Email Domain
- Update Email Domain
- Delete Email Domain
- Manage Mailboxes assigned to Email Domain
- List All Mailboxes
- Create Mailbox
- Update Mailbox
- Delete Mailbox
- Get Mailbox Configuration
- Create SSO to Webmail
- Manage Forwarders assigned to Email Domain
- List All Forwarders
- Create Forwarder
- Delete Forwarder
- Get Usage for Panelalpha Service
Ensure all features listed are implemented within the integration to provide comprehensive functionality.
To create and install your own email server integration, follow these steps:
- Download the Sample Integration
Start by downloading or cloning theSample Email Server Integrationas a base template. - Apply Required Changes
Every reference of "SampleEmailServer" should be replaced with your integration name, e.g.- rename file app/Lib/Integrations/EmailServers/SampleEmailServer.php to MyEmailProvider.php
- replace class SampleEmailServer with class MyEmailProvider in file
- app/Lib/Integrations/EmailServers/MyEmailProvider.php
- rename directory app/Lib/Integrations/EmailServers/SampleEmailServer to MyEmailProvider
- replace namespace App\Lib\Integrations\EmailServers\SampleEmailServer with MyEmailProvider in following files:
- app/Lib/Integrations/EmailServers/MyEmailProvider/Domain.php
- app/Lib/Integrations/EmailServers/MyEmailProvider/Domain/Account.php
- app/Lib/Integrations/EmailServers/MyEmailProvider/Domain/Forwarder.php
- Upload the Integration
Upload contents ofappdirectory to/opt/panelalpha/app/packages/api/appdirectory on the server where PanelAlpha is installed - Activate the Integration
Run following command as root on the server where PanelAlpha is installed:docker compose -f /opt/panelalpha/app/docker-compose.yml exec api php artisan integrations:sync - Replace example code with your own within all methods in all files
Refer to comments inside the files for details.
This repository is licensed under the MIT License.