mxroute-cli 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +464 -0
- package/dist/commands/accounts.d.ts +4 -0
- package/dist/commands/accounts.js +262 -0
- package/dist/commands/accounts.js.map +1 -0
- package/dist/commands/aliases.d.ts +3 -0
- package/dist/commands/aliases.js +190 -0
- package/dist/commands/aliases.js.map +1 -0
- package/dist/commands/auth.d.ts +3 -0
- package/dist/commands/auth.js +143 -0
- package/dist/commands/auth.js.map +1 -0
- package/dist/commands/autoresponder.d.ts +4 -0
- package/dist/commands/autoresponder.js +280 -0
- package/dist/commands/autoresponder.js.map +1 -0
- package/dist/commands/catchall.d.ts +2 -0
- package/dist/commands/catchall.js +173 -0
- package/dist/commands/catchall.js.map +1 -0
- package/dist/commands/config.d.ts +5 -0
- package/dist/commands/config.js +161 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/dns.d.ts +3 -0
- package/dist/commands/dns.js +160 -0
- package/dist/commands/dns.js.map +1 -0
- package/dist/commands/dnsapi.d.ts +4 -0
- package/dist/commands/dnsapi.js +397 -0
- package/dist/commands/dnsapi.js.map +1 -0
- package/dist/commands/domains.d.ts +2 -0
- package/dist/commands/domains.js +109 -0
- package/dist/commands/domains.js.map +1 -0
- package/dist/commands/filters.d.ts +3 -0
- package/dist/commands/filters.js +300 -0
- package/dist/commands/filters.js.map +1 -0
- package/dist/commands/forwarders.d.ts +3 -0
- package/dist/commands/forwarders.js +202 -0
- package/dist/commands/forwarders.js.map +1 -0
- package/dist/commands/info.d.ts +2 -0
- package/dist/commands/info.js +163 -0
- package/dist/commands/info.js.map +1 -0
- package/dist/commands/lists.d.ts +6 -0
- package/dist/commands/lists.js +372 -0
- package/dist/commands/lists.js.map +1 -0
- package/dist/commands/quota.d.ts +2 -0
- package/dist/commands/quota.js +184 -0
- package/dist/commands/quota.js.map +1 -0
- package/dist/commands/send.d.ts +9 -0
- package/dist/commands/send.js +107 -0
- package/dist/commands/send.js.map +1 -0
- package/dist/commands/setup.d.ts +1 -0
- package/dist/commands/setup.js +535 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/commands/spam.d.ts +4 -0
- package/dist/commands/spam.js +215 -0
- package/dist/commands/spam.js.map +1 -0
- package/dist/commands/status.d.ts +1 -0
- package/dist/commands/status.js +79 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/troubleshoot.d.ts +1 -0
- package/dist/commands/troubleshoot.js +324 -0
- package/dist/commands/troubleshoot.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +589 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp.d.ts +2 -0
- package/dist/mcp.js +599 -0
- package/dist/mcp.js.map +1 -0
- package/dist/utils/api.d.ts +15 -0
- package/dist/utils/api.js +30 -0
- package/dist/utils/api.js.map +1 -0
- package/dist/utils/config.d.ts +24 -0
- package/dist/utils/config.js +150 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/directadmin.d.ts +49 -0
- package/dist/utils/directadmin.js +444 -0
- package/dist/utils/directadmin.js.map +1 -0
- package/dist/utils/dns.d.ts +14 -0
- package/dist/utils/dns.js +284 -0
- package/dist/utils/dns.js.map +1 -0
- package/dist/utils/theme.d.ts +24 -0
- package/dist/utils/theme.js +95 -0
- package/dist/utils/theme.js.map +1 -0
- package/package.json +92 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,464 @@
|
|
|
1
|
+
# mxroute-cli
|
|
2
|
+
|
|
3
|
+
A powerful CLI for managing [MXroute](https://mxroute.com) email hosting -- full account management, DNS verification, email sending, spam configuration, troubleshooting, and more via the DirectAdmin API.
|
|
4
|
+
|
|
5
|
+
```
|
|
6
|
+
__ ____ __ _
|
|
7
|
+
| \/ \ \/ /_ __ ___ _ _| |_ ___
|
|
8
|
+
| |\/| |\ /| '__/ _ \| | | | __/ _ \
|
|
9
|
+
| | | |/ \| | | (_) | |_| | || __/
|
|
10
|
+
|_| |_/_/\_\_| \___/ \__,_|\__\___|
|
|
11
|
+
|
|
12
|
+
Email Hosting Management CLI
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Features
|
|
16
|
+
|
|
17
|
+
- **Full account management** -- domains, email accounts, forwarders, autoresponders, mailing lists, domain aliases
|
|
18
|
+
- **DNS management** -- health checks (MX, SPF, DKIM, DMARC), record management via API, DKIM key retrieval, zone file generation
|
|
19
|
+
- **Email sending** -- send emails via MXroute's SMTP API with interactive composer or CLI flags
|
|
20
|
+
- **Spam control** -- SpamAssassin configuration, catch-all addresses, email filters
|
|
21
|
+
- **Quota monitoring** -- disk usage, bandwidth, account counts with visual progress bars
|
|
22
|
+
- **Troubleshooting** -- interactive wizard covering 10 common issue categories
|
|
23
|
+
- **Connection reference** -- IMAP/SMTP/POP3 ports, webmail URLs, CalDAV/CardDAV setup, client guides
|
|
24
|
+
- **Multi-profile support** -- manage multiple MXroute accounts from one CLI
|
|
25
|
+
- **Secure config** -- credentials stored with `0600` permissions in `~/.config/mxroute-cli/`
|
|
26
|
+
|
|
27
|
+
## Install
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
npm install -g mxroute-cli
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Quick Start
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
# 1. Configure SMTP credentials (for sending email)
|
|
37
|
+
mxroute config setup
|
|
38
|
+
|
|
39
|
+
# 2. Authenticate with DirectAdmin API (for account management)
|
|
40
|
+
mxroute auth login
|
|
41
|
+
|
|
42
|
+
# 3. Check your DNS records
|
|
43
|
+
mxroute dns check
|
|
44
|
+
|
|
45
|
+
# 4. View full account status dashboard
|
|
46
|
+
mxroute status
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### Getting Your Credentials
|
|
50
|
+
|
|
51
|
+
The CLI uses two types of credentials:
|
|
52
|
+
|
|
53
|
+
| Credential | Purpose | Where to find |
|
|
54
|
+
|---|---|---|
|
|
55
|
+
| **Server hostname** | Identifies your MXroute server | Control Panel (panel.mxroute.com) -> DNS section. Looks like `tuesday`, `fusion`, etc. |
|
|
56
|
+
| **Email + password** | SMTP API (sending email) | Your email account credentials (same as email client login) |
|
|
57
|
+
| **DirectAdmin username** | API authentication | Your DirectAdmin login username |
|
|
58
|
+
| **Login Key** | API authentication (recommended over password) | Control Panel -> Login Keys -> Create new key |
|
|
59
|
+
|
|
60
|
+
> **Why Login Keys?** They're more secure than passwords -- you can restrict permissions, set expiry dates, and revoke them without changing your password.
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## Command Reference
|
|
65
|
+
|
|
66
|
+
### Authentication
|
|
67
|
+
|
|
68
|
+
Authenticate with the DirectAdmin API to unlock account management commands.
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
mxroute auth login # Interactive login with Login Key
|
|
72
|
+
mxroute auth status # Verify stored credentials are valid
|
|
73
|
+
mxroute auth logout # Remove stored credentials
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
**Example:**
|
|
77
|
+
```bash
|
|
78
|
+
$ mxroute auth login
|
|
79
|
+
? Server hostname: fusion
|
|
80
|
+
? DirectAdmin username: myuser
|
|
81
|
+
? Login Key: ••••••••
|
|
82
|
+
✔ Authentication successful!
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Configuration & Profiles
|
|
86
|
+
|
|
87
|
+
Configure SMTP credentials for sending email. Supports multiple profiles for managing different accounts.
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
mxroute config setup # Interactive configuration wizard
|
|
91
|
+
mxroute config show # Show current active configuration
|
|
92
|
+
mxroute config profiles # List all saved profiles
|
|
93
|
+
mxroute config switch # Switch between profiles (interactive)
|
|
94
|
+
mxroute config switch work # Switch to a named profile
|
|
95
|
+
mxroute config delete # Delete a profile (interactive)
|
|
96
|
+
mxroute config delete old # Delete a named profile
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
**Example -- multiple profiles:**
|
|
100
|
+
```bash
|
|
101
|
+
$ mxroute config setup # Creates "default" profile
|
|
102
|
+
$ mxroute config setup # Enter "work" as profile name
|
|
103
|
+
$ mxroute config switch # Pick which profile to use
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### Status Dashboard
|
|
107
|
+
|
|
108
|
+
Get a complete overview of your account in one command.
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
mxroute status # Full dashboard: account info, DNS health, API test
|
|
112
|
+
mxroute # Same as status (default command)
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Shows: active profile, server, account, domain, DNS health scores for MX/SPF/DKIM/DMARC/CNAME, and SMTP API connectivity test.
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
### Domains
|
|
120
|
+
|
|
121
|
+
List and inspect domains on your MXroute account.
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
mxroute domains list # List all domains with alias counts
|
|
125
|
+
mxroute domains info # Show details for configured domain
|
|
126
|
+
mxroute domains info example.com # Show details for specific domain
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
### Email Accounts
|
|
130
|
+
|
|
131
|
+
Create, list, delete, and manage passwords for email accounts.
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
mxroute accounts list # List accounts (prompts for domain if multiple)
|
|
135
|
+
mxroute accounts list example.com # List accounts for specific domain
|
|
136
|
+
mxroute accounts create # Interactive account creation
|
|
137
|
+
mxroute accounts create example.com # Create account on specific domain
|
|
138
|
+
mxroute accounts delete example.com # Delete an account (picks from list)
|
|
139
|
+
mxroute accounts passwd example.com # Change password (picks from list)
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
Aliases: `accounts add` = `accounts create`, `accounts rm` = `accounts delete`, `accounts password` = `accounts passwd`
|
|
143
|
+
|
|
144
|
+
**Example -- creating an account:**
|
|
145
|
+
```bash
|
|
146
|
+
$ mxroute accounts create example.com
|
|
147
|
+
? Username (before @example.com): info
|
|
148
|
+
? Password: ••••••••
|
|
149
|
+
? Confirm password: ••••••••
|
|
150
|
+
? Quota in MB (0 = unlimited): 0
|
|
151
|
+
? Create info@example.com? Yes
|
|
152
|
+
✔ Created info@example.com
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### Email Forwarders
|
|
156
|
+
|
|
157
|
+
Redirect email from one address to another.
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
mxroute forwarders list [domain] # List all forwarders
|
|
161
|
+
mxroute forwarders create [domain] # Create a forwarder (interactive)
|
|
162
|
+
mxroute forwarders delete [domain] # Delete a forwarder (picks from list)
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
Aliases: `fwd list`, `fwd create`, `fwd delete`; `forwarders add`, `forwarders rm`
|
|
166
|
+
|
|
167
|
+
### Autoresponders / Vacation Messages
|
|
168
|
+
|
|
169
|
+
Set up automatic replies for email accounts (e.g., "I'm out of office").
|
|
170
|
+
|
|
171
|
+
```bash
|
|
172
|
+
mxroute autoresponder list [domain] # List all autoresponders
|
|
173
|
+
mxroute autoresponder create [domain] # Create autoresponder (picks account, opens editor)
|
|
174
|
+
mxroute autoresponder edit [domain] # Edit existing autoresponder message
|
|
175
|
+
mxroute autoresponder delete [domain] # Delete an autoresponder
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
Aliases: `vacation list`, `vacation create`, `vacation edit`, `vacation delete`
|
|
179
|
+
|
|
180
|
+
### Catch-All / Default Address
|
|
181
|
+
|
|
182
|
+
Control what happens to email sent to non-existent addresses on your domain.
|
|
183
|
+
|
|
184
|
+
```bash
|
|
185
|
+
mxroute catchall get [domain] # Show current catch-all setting
|
|
186
|
+
mxroute catchall set [domain] # Configure catch-all (interactive)
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
**Catch-all options:**
|
|
190
|
+
- **Forward to existing account** -- picks from your email accounts
|
|
191
|
+
- **Forward to custom email** -- any external address
|
|
192
|
+
- **Reject** (`:fail:`) -- bounce back to sender
|
|
193
|
+
- **Disable** (`:blackhole:`) -- silently discard
|
|
194
|
+
|
|
195
|
+
### SpamAssassin
|
|
196
|
+
|
|
197
|
+
Configure server-side spam filtering per domain.
|
|
198
|
+
|
|
199
|
+
```bash
|
|
200
|
+
mxroute spam status [domain] # Show current SpamAssassin config
|
|
201
|
+
mxroute spam enable [domain] # Enable with defaults (score 5, spam folder)
|
|
202
|
+
mxroute spam disable [domain] # Disable SpamAssassin
|
|
203
|
+
mxroute spam config [domain] # Interactive configuration wizard
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
Aliases: `spam on` = `spam enable`, `spam off` = `spam disable`, `spam show` = `spam status`
|
|
207
|
+
|
|
208
|
+
**`spam config` options:**
|
|
209
|
+
- **Required score** (1-10) -- lower = more aggressive filtering
|
|
210
|
+
- **Spam delivery** -- move to spam folder, leave in inbox, or delete
|
|
211
|
+
- **High score threshold** -- separate action for very high scoring spam
|
|
212
|
+
- **High score action** -- what to do with high-scoring spam
|
|
213
|
+
|
|
214
|
+
> **Note:** MXroute also has "Expert Spam Filtering" which is separate from SpamAssassin. Manage it at Management Panel -> Spam Filters.
|
|
215
|
+
|
|
216
|
+
### Email Filters
|
|
217
|
+
|
|
218
|
+
Create per-account email filtering rules (server-side).
|
|
219
|
+
|
|
220
|
+
```bash
|
|
221
|
+
mxroute filters list [domain] # List filters (picks account)
|
|
222
|
+
mxroute filters create [domain] # Create a filter (interactive)
|
|
223
|
+
mxroute filters delete [domain] # Delete a filter (picks from list)
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
**Filter options:**
|
|
227
|
+
- **Match field**: from, to, subject, body
|
|
228
|
+
- **Match type**: contains, equals, starts with, ends with
|
|
229
|
+
- **Actions**: discard, forward to address, move to folder
|
|
230
|
+
|
|
231
|
+
### Mailing Lists
|
|
232
|
+
|
|
233
|
+
Create and manage mailing lists for group communication.
|
|
234
|
+
|
|
235
|
+
```bash
|
|
236
|
+
mxroute lists list [domain] # List all mailing lists
|
|
237
|
+
mxroute lists create [domain] # Create a new mailing list
|
|
238
|
+
mxroute lists delete [domain] # Delete a mailing list
|
|
239
|
+
mxroute lists members [domain] # Show members of a list
|
|
240
|
+
mxroute lists add-member [domain] # Add a member to a list
|
|
241
|
+
mxroute lists remove-member [domain] # Remove a member from a list
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
Aliases: `mailinglist list`, `lists ls`, `lists add`, `lists rm`
|
|
245
|
+
|
|
246
|
+
### Domain Aliases / Pointers
|
|
247
|
+
|
|
248
|
+
Make one domain share all email accounts with another domain.
|
|
249
|
+
|
|
250
|
+
```bash
|
|
251
|
+
mxroute aliases list [domain] # List domain aliases/pointers
|
|
252
|
+
mxroute aliases add [domain] # Add a domain alias
|
|
253
|
+
mxroute aliases remove [domain] # Remove a domain alias
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
> **How aliases work:** If `primary.com` has `user@primary.com`, adding `alias.com` as a pointer means `user@alias.com` will also work -- all accounts are shared.
|
|
257
|
+
|
|
258
|
+
### Quota & Usage
|
|
259
|
+
|
|
260
|
+
Monitor disk usage, bandwidth, and resource limits.
|
|
261
|
+
|
|
262
|
+
```bash
|
|
263
|
+
mxroute quota # Account-wide usage overview with progress bars
|
|
264
|
+
mxroute quota-set [domain] # Set quota for a specific email account
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
**Example output:**
|
|
268
|
+
```
|
|
269
|
+
┌─ Resource Usage ─────────────────────────────────────────────┐
|
|
270
|
+
│ Disk Usage 3.19MB / 100.0GB [--------------------] 0% │
|
|
271
|
+
│ Bandwidth 1.26MB / unlimited │
|
|
272
|
+
│ Email Accounts 12 / unlimited │
|
|
273
|
+
│ Domains 3 / unlimited │
|
|
274
|
+
│ Forwarders 1 / unlimited │
|
|
275
|
+
└──────────────────────────────────────────────────────────────────┘
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
---
|
|
279
|
+
|
|
280
|
+
### DNS Management
|
|
281
|
+
|
|
282
|
+
Two approaches to DNS: **health checks** (read-only, queries public DNS) and **record management** (read/write, via DirectAdmin API).
|
|
283
|
+
|
|
284
|
+
#### DNS Health Check
|
|
285
|
+
|
|
286
|
+
Verify your domain's DNS records are correctly configured for MXroute by querying public DNS servers.
|
|
287
|
+
|
|
288
|
+
```bash
|
|
289
|
+
mxroute dns check # Check configured domain
|
|
290
|
+
mxroute dns check example.com # Check specific domain
|
|
291
|
+
mxroute dns records # Show required DNS records for your server
|
|
292
|
+
mxroute dns records example.com # Show for specific domain
|
|
293
|
+
mxroute dns generate # Generate zone file (picks DNS provider)
|
|
294
|
+
mxroute dns generate example.com # Generate for specific domain
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
**What `dns check` verifies:**
|
|
298
|
+
- **MX** -- primary and relay records pointing to your MXroute server
|
|
299
|
+
- **SPF** -- `v=spf1 include:mxroute.com -all` present, single record, hard fail
|
|
300
|
+
- **DKIM** -- `x._domainkey` TXT record with valid DKIM1 key
|
|
301
|
+
- **DMARC** -- `_dmarc` TXT record with quarantine or reject policy
|
|
302
|
+
- **CNAME** -- custom hostnames for mail/webmail (optional)
|
|
303
|
+
|
|
304
|
+
**`dns generate` supports:**
|
|
305
|
+
- Cloudflare (with proxy-off warning)
|
|
306
|
+
- Namecheap
|
|
307
|
+
- Route53 / AWS (with quoting notes)
|
|
308
|
+
- Generic / other providers
|
|
309
|
+
|
|
310
|
+
#### DNS Records (via DirectAdmin API)
|
|
311
|
+
|
|
312
|
+
Manage DNS records directly on your MXroute server. Requires authentication (`mxroute auth login`).
|
|
313
|
+
|
|
314
|
+
```bash
|
|
315
|
+
mxroute dnsrecords list [domain] # List all DNS records from server
|
|
316
|
+
mxroute dnsrecords add [domain] # Add a record (A, AAAA, CNAME, MX, TXT, SRV)
|
|
317
|
+
mxroute dnsrecords delete [domain] # Delete a DNS record
|
|
318
|
+
mxroute dnsrecords dkim [domain] # Retrieve the full DKIM key for your domain
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
Aliases: `dnsapi list`, `dnsapi add`, etc.
|
|
322
|
+
|
|
323
|
+
---
|
|
324
|
+
|
|
325
|
+
### Send Email
|
|
326
|
+
|
|
327
|
+
Send email via MXroute's SMTP API. Requires SMTP configuration (`mxroute config setup`).
|
|
328
|
+
|
|
329
|
+
```bash
|
|
330
|
+
mxroute send # Interactive composer (opens editor for body)
|
|
331
|
+
mxroute send -t user@example.com -s "Subject" -b "Body text" # Send with flags
|
|
332
|
+
mxroute send -t user@example.com -s "Hi" --html -b "<h1>Hello</h1>" # HTML body
|
|
333
|
+
mxroute send -f alias@example.com -t user@example.com -s "Hi" -b "Body" # Custom from
|
|
334
|
+
mxroute test # Send a test email to yourself
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
**Options:**
|
|
338
|
+
| Flag | Description |
|
|
339
|
+
|---|---|
|
|
340
|
+
| `-t, --to <email>` | Recipient email address |
|
|
341
|
+
| `-s, --subject <text>` | Email subject line |
|
|
342
|
+
| `-b, --body <text>` | Email body content |
|
|
343
|
+
| `-f, --from <email>` | Sender address (defaults to configured username) |
|
|
344
|
+
| `--html` | Treat body as raw HTML (otherwise auto-wrapped) |
|
|
345
|
+
|
|
346
|
+
**SMTP API limitations:**
|
|
347
|
+
- 400 emails per hour per email address
|
|
348
|
+
- Single recipient per request
|
|
349
|
+
- No file attachments
|
|
350
|
+
- Body size limit ~10MB
|
|
351
|
+
- Marketing/promotional email is prohibited
|
|
352
|
+
|
|
353
|
+
### Connection Info
|
|
354
|
+
|
|
355
|
+
Quick reference for email client settings, webmail URLs, and service details.
|
|
356
|
+
|
|
357
|
+
```bash
|
|
358
|
+
mxroute info connections # IMAP/SMTP/POP3 ports table
|
|
359
|
+
mxroute info webmail # Webmail URLs (Crossbox, Roundcube)
|
|
360
|
+
mxroute info caldav # CalDAV/CardDAV server and setup guides
|
|
361
|
+
mxroute info api # SMTP API endpoint, fields, and limits
|
|
362
|
+
mxroute info limits # Service limits and policies
|
|
363
|
+
mxroute info panels # Management and Control Panel URLs
|
|
364
|
+
mxroute info all # Everything at once
|
|
365
|
+
```
|
|
366
|
+
|
|
367
|
+
**Email client setup guides:**
|
|
368
|
+
```bash
|
|
369
|
+
mxroute info client ios # Apple Mail (iPhone/iPad)
|
|
370
|
+
mxroute info client outlook # Microsoft Outlook
|
|
371
|
+
mxroute info client thunderbird # Mozilla Thunderbird
|
|
372
|
+
mxroute info client generic # Generic IMAP/SMTP settings
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
**Connection settings reference:**
|
|
376
|
+
|
|
377
|
+
| Protocol | Port | Encryption | Recommended |
|
|
378
|
+
|---|---|---|---|
|
|
379
|
+
| IMAP | 993 | SSL/TLS | Yes |
|
|
380
|
+
| IMAP | 143 | STARTTLS | Alternative |
|
|
381
|
+
| POP3 | 995 | SSL/TLS | Yes |
|
|
382
|
+
| POP3 | 110 | STARTTLS | Alternative |
|
|
383
|
+
| SMTP | 465 | SSL/TLS | Yes |
|
|
384
|
+
| SMTP | 587 | STARTTLS | Alternative |
|
|
385
|
+
| SMTP | 2525 | STARTTLS | If 587 blocked |
|
|
386
|
+
|
|
387
|
+
### Troubleshooting
|
|
388
|
+
|
|
389
|
+
Interactive troubleshooting wizard that walks you through diagnosing and fixing common issues.
|
|
390
|
+
|
|
391
|
+
```bash
|
|
392
|
+
mxroute troubleshoot # Launch interactive wizard
|
|
393
|
+
mxroute diagnose # Alias
|
|
394
|
+
```
|
|
395
|
+
|
|
396
|
+
**Covers 10 issue categories:**
|
|
397
|
+
1. **Emails going to spam (Gmail)** -- mail-tester, DNS checks, filter training, Postmaster Tools
|
|
398
|
+
2. **Emails going to spam (Microsoft)** -- Microsoft-specific steps, SNDS reputation
|
|
399
|
+
3. **Cannot connect to server** -- ports, firewall, ISP blocking, live connection test
|
|
400
|
+
4. **Authentication failures** -- username format, password reset, encryption settings
|
|
401
|
+
5. **Emails not being delivered** -- DNS check, sender verification, bounce analysis
|
|
402
|
+
6. **DNS configuration issues** -- common mistakes checklist, live DNS check
|
|
403
|
+
7. **SSL certificate warnings** -- CNAME setup, certificate request steps
|
|
404
|
+
8. **Common error messages** -- 550 Auth Required, Sender Verify Failed, 5.7.515, etc.
|
|
405
|
+
9. **Migration issues** -- imapsync command, step-by-step migration guide
|
|
406
|
+
10. **Spam filter blocking legitimate mail** -- whitelist requests, filter toggle
|
|
407
|
+
|
|
408
|
+
---
|
|
409
|
+
|
|
410
|
+
## Configuration
|
|
411
|
+
|
|
412
|
+
### Config file
|
|
413
|
+
|
|
414
|
+
Configuration is stored at `~/.config/mxroute-cli/config.json` with file permissions `0600` (owner-only read/write).
|
|
415
|
+
|
|
416
|
+
```bash
|
|
417
|
+
mxroute config show # View current config (passwords masked)
|
|
418
|
+
```
|
|
419
|
+
|
|
420
|
+
### Two credential types
|
|
421
|
+
|
|
422
|
+
| Type | Used for | Command | Required for |
|
|
423
|
+
|---|---|---|---|
|
|
424
|
+
| **SMTP credentials** | Sending email | `mxroute config setup` | `send`, `test` |
|
|
425
|
+
| **DirectAdmin Login Key** | Account management | `mxroute auth login` | `domains`, `accounts`, `forwarders`, `autoresponder`, `catchall`, `spam`, `dnsrecords`, `filters`, `lists`, `aliases`, `quota` |
|
|
426
|
+
|
|
427
|
+
Commands that only read public DNS (`dns check`, `dns records`, `dns generate`) and display static info (`info`, `troubleshoot`) work without any credentials -- just a server name.
|
|
428
|
+
|
|
429
|
+
### Multiple profiles
|
|
430
|
+
|
|
431
|
+
Manage different MXroute accounts from one CLI:
|
|
432
|
+
|
|
433
|
+
```bash
|
|
434
|
+
# Create profiles
|
|
435
|
+
mxroute config setup # First run creates "default" profile
|
|
436
|
+
mxroute config setup # Enter "work" as profile name for second
|
|
437
|
+
|
|
438
|
+
# Switch between them
|
|
439
|
+
mxroute config switch # Interactive picker
|
|
440
|
+
mxroute config switch work # Switch by name
|
|
441
|
+
mxroute config profiles # List all profiles
|
|
442
|
+
|
|
443
|
+
# Delete a profile
|
|
444
|
+
mxroute config delete old # Delete by name
|
|
445
|
+
```
|
|
446
|
+
|
|
447
|
+
---
|
|
448
|
+
|
|
449
|
+
## MXroute Panels
|
|
450
|
+
|
|
451
|
+
| Panel | URL | Purpose |
|
|
452
|
+
|---|---|---|
|
|
453
|
+
| **Management Panel** | https://management.mxroute.com | Subscriptions, invoices, payment, support tickets |
|
|
454
|
+
| **Control Panel** | https://panel.mxroute.com | Email accounts, forwarders, domains, DNS, spam, webmail |
|
|
455
|
+
| **Whitelist Request** | https://whitelistrequest.mxrouting.net | Request IP/domain whitelist for spam filter |
|
|
456
|
+
|
|
457
|
+
## Requirements
|
|
458
|
+
|
|
459
|
+
- Node.js >= 18
|
|
460
|
+
- An [MXroute](https://mxroute.com) email hosting account
|
|
461
|
+
|
|
462
|
+
## License
|
|
463
|
+
|
|
464
|
+
MIT
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare function accountsList(domain?: string): Promise<void>;
|
|
2
|
+
export declare function accountsCreate(domain?: string): Promise<void>;
|
|
3
|
+
export declare function accountsDelete(domain?: string): Promise<void>;
|
|
4
|
+
export declare function accountsPasswd(domain?: string): Promise<void>;
|