Email Setup
Configure how Deskuss sends and receives email — SMTP, IMAP/POP3 fetching, piping, and the auto-responder. Plus the Emails menu and Test Outgoing Email tool.
The Emails Menu
All email configuration lives under the top-level Emails menu in the staff control panel. It has four sub-items:
| Sub-item | URL | Purpose |
|---|---|---|
| Email Addresses | /deskuss/admin/emails.php | Manage inbound and outbound email accounts (SMTP, IMAP, POP3) |
| Settings | /deskuss/admin/emailsettings.php | Defaults: default priority, default department, default template, signature |
| Templates | /deskuss/admin/templates.php | Edit the 13 seeded email templates — see Email Templates |
| Test Outgoing Email | /deskuss/admin/emailtest.php | Send a one-off test message to verify SMTP works |
SMTP (Outgoing Mail)
Deskuss sends notifications (new-ticket auto-responder, agent replies, alerts) using an SMTP account you configure. By default it uses WordPress's wp_mail(), which on most hosts is unreliable — set up a real SMTP account.
Configuring SMTP
- Go to Deskuss → Emails → Email Addresses
- Click Add New Email
- Set the Type to
SMTP - Fill in:
- Email Address — the From address (e.g.,
support@yourdomain.com) - Name — display name (e.g.,
Acme Support) - SMTP Host — e.g.,
smtp.mailgun.org,smtp.gmail.com - SMTP Port —
465for SSL,587for TLS,25for unencrypted - Username & Password — your SMTP credentials
- Encryption —
SSL,TLS, orNone
- Email Address — the From address (e.g.,
- Click Save
- Open Emails → Test Outgoing Email and send a test
Common SMTP Providers
| Provider | Host | Port | Encryption | Notes |
|---|---|---|---|---|
| Mailgun | smtp.mailgun.org | 587 | TLS | Free tier: 5000 msgs/month. Good deliverability. |
| SendGrid | smtp.sendgrid.net | 587 | TLS | Free tier: 100/day. Use apikey as username. |
| Amazon SES | email-smtp.<region>.amazonaws.com | 587 | TLS | Cheap at scale. Requires SMTP credentials, not IAM keys. |
| Gmail / Workspace | smtp.gmail.com | 587 | TLS | Requires an App Password, not your account password. |
| Outlook / Office 365 | smtp.office365.com | 587 | TLS | Modern auth may require OAuth — see provider docs. |
IMAP / POP3 (Incoming Mail)
Email fetching lets Deskuss poll an external mailbox and turn incoming messages into tickets or replies. This is the most common way to support a shared mailbox like support@yourdomain.com.
Setting Up Email Fetching
- Go to Deskuss → Emails → Email Addresses
- Click Add New Email
- Set the Type to
POP3orIMAP(IMAP recommended) - Fill in:
- Email Address — the mailbox to poll
- Host — e.g.,
imap.gmail.com - Port —
993(IMAP SSL),995(POP3 SSL),143(IMAP),110(POP3) - Username & Password
- Encryption —
SSLorNone - Folder — IMAP folder to poll (default:
INBOX) - Department — tickets from this mailbox route to this department
- Polling Interval — how often to check for new mail
- Delete After Fetch — remove from server after import (off by default)
- Save and test the connection
Each fetched email is matched against existing tickets by subject line and Message-ID header. If a match is found, the email is added as a reply. If no match is found, a new ticket is created.
Email Piping
Email piping routes incoming emails directly to Deskuss in real time — no polling delay. It's faster than IMAP fetch but requires server-level configuration.
How It Works
- Your mail server forwards incoming emails to a script via a pipe or forwarding rule
- Deskuss processes the raw email immediately
- Emails that don't match an existing ticket become new tickets
- Replies to existing ticket notification emails are added as replies to the original ticket
Setting Up
- Configure the pipe path on your mail server. A typical Postfix alias:
support: "|/usr/bin/php /path/to/wp-content/plugins/deskuss/packages/api/pipe.php" - Make sure the pipe script is executable by the mail user
- Send a test email to the piped address and confirm a ticket is created
Piping vs. Fetching
| Feature | Piping | IMAP/POP3 Fetch |
|---|---|---|
| Latency | Real-time | Polling interval (default every 5 min) |
| Server requirements | Shell access; ability to set aliases | Just IMAP/POP3 credentials |
| Setup complexity | Higher | Lower |
| Reliability | High (no polling to break) | Good (depends on polling cron) |
| Best for | High-volume mailboxes where latency matters | Shared hosting and quick setup |
Auto-Responder
When a customer opens a new ticket, Deskuss automatically emails them a confirmation. To customize this message, edit the New Ticket Auto-Response template under Emails → Templates. See Email Templates for the full list and template variables.
Email Alerts (Internal)
Internal email alerts — notifications to staff when a new ticket arrives, an agent is assigned, or a ticket is overdue — are configured in the Alerts section of Settings → Tickets. See Settings Reference → Tickets for the alert recipient matrix.
Test Outgoing Email
After configuring SMTP, verify it works:
- Go to Deskuss → Emails → Test Outgoing Email
- Enter a recipient address you control
- Optionally customize the subject and body
- Click Send
- Check the recipient inbox (allow up to a minute for delivery)
If the test fails:
- Check Deskuss → System → Logs for the actual error message
- Verify the SMTP credentials by sending a test through your email client (or
swaks) - Confirm the port and encryption match your provider's requirements
- Check that your server can make outbound connections to the SMTP host (some firewalls block port 587 or 465)
Common Issues
Auto-responder never arrives
Check the system log for the dispatch. The most common cause: SMTP not configured, or the email account's status is set to Disabled.
Notifications go to spam
Configure SPF and DKIM for your sending domain. Most SMTP providers walk you through this. Also confirm the From address matches the domain you're sending from (DMARC alignment).
Auth tokens / password resets never arrive
Same as auto-responder — SMTP. Plus, check the customer's spam folder. Some corporate filters strip unfamiliar senders.
Email loop (your own notifications become tickets)
If your From address matches the address you're polling/ piping, every reply triggers a new notification which triggers a new ticket. The fix: use a different address for outgoing (e.g., support@) than for incoming (e.g., tickets@), or add the From address to the ticket filters as a reject rule.