HiheMAX Mail product manual

Set up, operate
and troubleshoot
the real platform.

Follow complete workflows for administrators, mailbox users, campaign operators and developers. Every chapter names the route to open, prerequisites, expected result and common failure.

Workspace administrator

Create a working email workspace

The workspace account administers domains, mailboxes, templates, campaigns, API keys and billing. It is different from a mailbox login.

01

Create the workspace

Open Sign up, enter the workspace owner details, verify the account if prompted, then sign in. Use this account for administration—not for direct IMAP authentication.
02

Choose the next workflow

For a business inbox, connect a domain first. For application email, enable Developer tools, create an API key and either send direct content or activate a template.
03

Know the two logins

Workspace sign-in opens the dashboard. Direct webmail sign-in uses a complete mailbox address such as samson@example.com and that mailbox’s password.
Successful setup means the dashboard loads, the current plan is visible and you can open Domains, Mailboxes, Templates, Campaigns and API from the main navigation.
Domains and DNS

Connect a domain without interrupting mail blindly

Add the domain in HiheMAX Mail, publish the exact records shown for that domain, then verify before creating mailboxes.

01

Add the domain

Open Dashboard → Domains, choose Add domain, enter only the root domain such as example.com, and save. Do not include https://, a path or an email address.
02

Copy generated DNS

Open the domain record. Copy the verification TXT value, MX destination, SPF value and DKIM record exactly as displayed. Your DNS provider may append the root domain automatically; check its preview before saving.
03

Remove conflicts carefully

A second SPF TXT record is invalid; merge permitted senders into one SPF policy. Old MX records can continue routing mail elsewhere. Take a backup of existing records before changing a live domain.
04

Verify

After DNS propagates, return to the domain and choose Verify. Verification checks ownership and the configured mail-server state. DNS propagation may take minutes or several hours depending on TTL and provider caching.
05

Confirm the result

The domain must show verified before mailbox creation. If it remains pending, compare host, type and value character-for-character and query the public DNS record outside your provider dashboard.
Do not delete working MX records until you intend to move inbound mail. Domain verification and live mail cutover are related but not identical operations.
Mailbox administration

Create and manage professional addresses

A mailbox is an actual account under a verified domain, with its own address, password, storage quota and optional forwarding settings.

01

Check prerequisites

The domain must be verified and the active plan must have available mailbox capacity. Open Dashboard → Mailboxes.
02

Create the account

Choose the verified domain, enter the local part before the @ sign, set a display name and strong mailbox password, then save. The resulting address must be unique.
03

Share access safely

Give the user the full address, mailbox password and the Webmail URL through an appropriate private channel. Never place mailbox passwords in tickets or screenshots.
04

Update or remove

Use the mailbox action menu to change editable account details, logo, forwarding or active state. Deleting a mailbox is destructive; export or preserve required mail first.
Workspace credentials administer every mailbox owned by the workspace. Mailbox credentials sign into one mailbox directly.
Mailbox user

Use the inbox, not a decorative preview

Webmail operates against the currently selected mailbox. The interface combines folders, message results, the reader and adjacent productivity tools.

01

Enter webmail

Workspace owners can open Dashboard → Webmail and select an account. Mailbox users can open /webmail-login and enter the full address and mailbox password.
02

Read and organise

Choose Inbox, Sent, Drafts, Trash or Spam; select a message; then reply, forward, star, flag, move or mark it unread. Search operates in the selected mailbox context.
03

Compose

Choose Compose, add recipients, subject and message content, then attach files if required. Confirm the selected From identity before sending.
04

Use workspace tools

Contacts stores people and audience groups. Notes and Calendar remain associated with the selected mailbox. Switching mailboxes changes the active data context.
If the message list is empty, first confirm the selected mailbox and folder. A successful workspace login does not prove that a mailbox exists or has received mail.
Audience management

Turn contacts into reusable groups

Contacts support everyday address-book use and campaign audiences. Groups are labels stored on each contact.

01

Create a contact

Open Webmail → Contacts, choose Add contact, and enter a valid email address plus the person or company details you need.
02

Assign groups

Enter one or more group names separated by commas—for example customers, lagos, product-updates. Reuse the same spelling to keep one coherent group.
03

Maintain consent

A group is an organisational label, not proof of marketing consent. Only campaign people who should receive the message and maintain your own consent or suppression process.
04

Check duplicates

Campaign preflight normalises email addresses and sends once per unique address even when a contact belongs to multiple selected groups.
Template studio

Build reusable messages with safe variables

Templates hold a subject, HTML design, optional text alternative, category and lifecycle status. API and campaign sending require an active template.

01

Create

Open Dashboard → Templates, choose a blank design or starting layout, name it clearly and write the saved subject, HTML and text alternative.
02

Add variables

Use double braces such as {{first_name}}, {{company}} or {{order_id}}. Campaigns automatically provide name, first_name, email and company from contacts.
03

Preview and test

Preview representative short, long and missing variable values. Keep critical information understandable in the text alternative and do not rely on images alone.
04

Activate

Save drafts while editing. Change status to active only when the design is ready for API or campaign use. Archive obsolete designs instead of silently reusing them.
HTML variable values are escaped during rendering. Variables are content fields, not a way to inject arbitrary HTML into the template.
Campaign operator

Prepare, test, review and send a campaign

Campaigns combine one active template, a subject and one or more contact groups. Delivery consumes the same visible email credits as API sending.

01

Prepare the audience

Create contacts, assign consistent group names and confirm the addresses should receive this communication.
02

Create the campaign

Open Dashboard → Campaigns, choose New campaign, enter an internal name, select an active template, set the subject and choose recipient groups.
03

Inspect preview

The audience panel lists matching contacts. Save the campaign, then use Send test to me; the test goes to the signed-in workspace owner and consumes one metered credit.
04

Run preflight

Choose Review & send. Server-side preflight recalculates unique recipients, confirms template ownership and status, and compares required credits with the current balance.
05

Confirm delivery

Confirm the displayed recipient count. The final result records recipient, sent and failed totals. A completed campaign cannot be sent again; create a new campaign for another delivery.
An accepted send is not a guaranteed inbox placement. Provider acceptance, recipient-server delivery, spam filtering, bounces and human engagement are separate states.
Developer tools

Send from a backend with an attributable key

Use the versioned API for transactional sending, batch requests, hosted email verification, account inspection and usage history.

01

Enable developer tools

Open Dashboard → API, enable Developer mode if required, then create a key with a label that identifies the application or environment.
02

Store the key server-side

Copy the hm_… value into a server secret manager or protected environment variable. Never ship it in browser JavaScript, a mobile binary or a public repository.
03

Send direct content

Use POST /api/v1/send with X-API-Key or Bearer authentication. Supply to, subject and at least one of text or html.
curl -X POST https://hihemaxmail.hdock.app/api/v1/send \
  -H "X-API-Key: hm_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "customer@example.com",
    "subject": "Your receipt",
    "text": "Payment received."
  }'
04

Send a template

Use the same endpoint with an active, workspace-owned templateId and a variables object.
curl -X POST https://hihemaxmail.hdock.app/api/v1/send \
  -H "Authorization: Bearer hm_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "customer@example.com",
    "templateId": "YOUR_ACTIVE_TEMPLATE_ID",
    "variables": { "first_name": "Ada", "order_id": "HM-1042" }
  }'
05

Handle responses

A successful API response means the sending path accepted the operation. Handle 400 validation, 401 key, 402 credit, 429 rate-limit and 5xx/provider failures explicitly.
Metering

Understand what consumed credits

The API dashboard reads the real usage ledger. It does not estimate usage from UI activity.

01

Open the dashboard

Go to Dashboard → API. The summary shows active keys, balance, metered requests and credits consumed.
02

Read the chart

The fourteen-day chart groups recorded usage by day. Recent activity identifies the action, key label, count, cost and timestamp.
03

Match actions

Direct and template sends record the calling API key. Campaign delivery records the Campaigns label; owner tests record Campaign test.
04

Query programmatically

Use GET /api/v1/me for key and balance context or GET /api/v1/usage?limit=50 for recent account events.
Plans and Paystack

Know when paid access renews or expires

Plan limits govern domains, mailboxes and storage. The subscription view combines the stored entitlement with verified Paystack state.

01

Choose a plan

Open Pricing or Settings → Subscription, select monthly or yearly billing and continue to Paystack.
02

Return and verify

After payment, return through the configured callback. The server verifies the transaction before updating entitlement; a browser redirect alone is not proof of payment.
03

Review renewal

Settings shows plan, billing cycle, status and renewal or expiry time when available. A provider subscription code enables the hosted management link.
04

Handle expiry

Expired paid access is evaluated by the authenticated subscription path. Renew or choose an available plan rather than relying on a stale client-side badge.
Never send card details, Paystack authorization data or transaction secrets to support. Provide only the safe transaction reference when investigation requires it.
Operational security

Keep four identities separate

Workspace sessions, mailbox credentials, API keys and infrastructure secrets have different purposes and must not be substituted for one another.

01

Workspace account

Use it for domains, accounts, templates, campaigns, API keys, billing and settings. Protect it with a unique password.
02

Mailbox account

Use the complete email address and mailbox password for direct webmail or mail protocols. Rotate it if exposure is suspected.
03

API key

Use only from trusted backend code. Label by environment, review last use and revoke independently when compromised.
04

Provider secrets

Appwrite service keys, mail-server credentials and Paystack secrets remain server-side and must never appear in screenshots, public pages or client bundles.
Diagnosis

Find the failing layer before retrying

Use the symptom to identify whether the problem is DNS, mailbox authentication, application validation, credits, provider delivery or subscription state.

SymptomCheck firstNext action
Domain stays pendingPublic TXT/MX lookup and exact host/valueCorrect DNS, wait for TTL, then verify again
Cannot create mailboxDomain verification and plan mailbox capacityVerify domain or free/upgrade capacity
Webmail login failsFull address, mailbox password and active accountReset mailbox credentials from the workspace
Template send rejectedTemplate owner, ID and active statusActivate the correct workspace template
Campaign shows zero recipientsSelected group spelling on contactsEdit contacts or choose a populated group
Campaign cannot sendPreflight recipient count and credit balanceTop up credits or reduce audience
API returns 401Header, raw key, revocation statusUse a valid server-side key
API returns 402Credit balancePurchase credits before retrying
API returns 429Retry-After valueBack off; do not loop immediately
Accepted but not in inboxSpam folder, recipient address and provider responseSeparate acceptance from final delivery investigation
Plan looks expiredSettings subscription status and provider renewalVerify transaction or renew through Paystack

What to include in a support request

  • • The affected route or product area.
  • • The approximate timestamp and timezone.
  • • The expected result and the actual result.
  • • A safe error code or request ID, if present.
  • • Never include passwords, raw API keys or payment credentials.
Open support resources