UNPKG

node-mailu

Version:

node-mailu is a Node.js library designed to facilitate interaction with the Mailu API, an open source, self-hosted email platform. This library provides methods and functions that allow developers to programmatically manage various operations related to t

126 lines (102 loc) 4.31 kB
## node-mailu This client library provides a convenient way to interact with a Mailu API instance. It encapsulates the necessary details for authentication and interaction with various Mailu services. **Reference:** Mailu's official RestAPI documentation.: [https://mailu.io/master/api.html](https://mailu.io/master/api.html) ### Installation You can install node-mailu via npm: ```bash npm install node-mailu ``` ### Usage ```javascript const axios = require('axios'); const MailuClient = require('node-mailu'); // Replace with your Mailu instance's endpoint and API key const endpoint = 'https://mailu.yourdomain.com/api/v1'; const apiKey = 'YOUR_API_KEY'; const mailuClient = new MailuClient(endpoint, apiKey); // Example: Creating a new user (async () => { try{ const user = await mailuClient.userService.createUser({ email: 'newuser@example.com', raw_password: 'yourpassword', comment: 'New user account' }); console.log('User created:', user.data); }catch(error){ console.error('Error creating user:', error); } })(); ``` ##### Important Note Your API key is stored within the `mailu` directory on your system, contained within the `.env` environment file. Reference the Mailu documentation for specifics. ## Sections * **MailuClient** * **Constructor** * **useAxios** * **Services** * **AliasService** * **AlternativeService** * **DomainService** * **RelayService** * **UserService** ## MailuClient The core client for interacting with the Mailu API. ### Constructor ```javascript constructor(endpoint, apiKey) ``` * **endpoint** (string): The base URL of your Mailu API instance. * **apiKey** (string): An authorization key to access the Mailu API. ### useAxios A utility method to handle API requests using Axios. ```javascript useAxios(method, path, data) ``` * **method** (string): The HTTP method to use ('get', 'post', etc.). * **path** (string): The endpoint path relative to the base URL. * **data** (object, optional): Data to send in the request body. **Returns:** A Promise resolving with the API response data, or rejecting with an error. ## Services Each service represents a domain of functionality within the Mailu API. ### AliasService Methods for managing email aliases in Mailu. * **getAliases()** - Retrieves all aliases. * **createAlias(body)** - Creates a new alias. * **getAliasesFromDomain(domain)** - Retrieves aliases for a specific domain. * **updateAlias(alias, body)** - Updates an existing alias. * **getAlias(alias)** - Retrieves a single alias. * **deleteAlias(alias)** - Deletes an alias. ### AlternativeService Methods for managing alternative addresses (additional emails for receiving to a user's inbox). * **getAlternatives()** - Retrieves all alternative addresses. * **createAlternative(body)** - Creates a new alternative address. * **getAlternative(alt)** - Retrieves details of an alternative address. * **deleteAlternative(alt)** - Deletes an alternative address. ### DomainService Methods for managing domains in Mailu. * **getDomains()** - Lists all domains. * **createDomain(body)** - Creates a new domain. * **updateDomain(domain, body)** - Updates a domain. * **getDomain(domain)** - Retrieves details of a domain. * **deleteDomain(domain)** - Deletes a domain. * **generateDomainKeys(domain)** - Generates DKIM keys for a domain. * **getDomainManagers(domain)** - Lists managers for a domain. * **createDomainManager(domain, body)** - Adds a new domain manager. * **deleteDomainManager(domain, email)** - Removes a domain manager. * **getDomainManager(domain, email)** - Retrieves details of a domain manager. * **getUsersFromDomain(domain)** - Lists users of a domain. ### RelayService Methods for managing email relays. * **getRelays()** - Lists all relays. * **createRelay(body)** - Creates a new relay. * **updateRelay(name, body)** - Updates a relay. * **getRelay(name)** - Gets details of a relay. * **deleteRelay(name)** - Deletes a relay. ### UserService Methods for managing Mailu users. * **getUsers()** - Lists all users. * **createUser(body)** - Creates a new user. * **updateUser(email, body)** - Updates a user. * **getUser(email)** - Retrieves details of a user. * **deleteUser(email)** - Deletes a user.