Get Started

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-itemURLPurpose
Email Addresses/deskuss/admin/emails.phpManage inbound and outbound email accounts (SMTP, IMAP, POP3)
Settings/deskuss/admin/emailsettings.phpDefaults: default priority, default department, default template, signature
Templates/deskuss/admin/templates.phpEdit the 13 seeded email templates — see Email Templates
Test Outgoing Email/deskuss/admin/emailtest.phpSend 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

  1. Go to Deskuss → Emails → Email Addresses
  2. Click Add New Email
  3. Set the Type to SMTP
  4. 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 Port465 for SSL, 587 for TLS, 25 for unencrypted
    • Username & Password — your SMTP credentials
    • EncryptionSSL, TLS, or None
  5. Click Save
  6. Open Emails → Test Outgoing Email and send a test

Common SMTP Providers

ProviderHostPortEncryptionNotes
Mailgunsmtp.mailgun.org587TLSFree tier: 5000 msgs/month. Good deliverability.
SendGridsmtp.sendgrid.net587TLSFree tier: 100/day. Use apikey as username.
Amazon SESemail-smtp.<region>.amazonaws.com587TLSCheap at scale. Requires SMTP credentials, not IAM keys.
Gmail / Workspacesmtp.gmail.com587TLSRequires an App Password, not your account password.
Outlook / Office 365smtp.office365.com587TLSModern auth may require OAuth — see provider docs.
Deliverability tip: For reliable inbox delivery, configure SPF and DKIM DNS records for the domain you send from. Most SMTP providers have a setup guide in their dashboard. Without these, your notifications are more likely to land in spam.

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

  1. Go to Deskuss → Emails → Email Addresses
  2. Click Add New Email
  3. Set the Type to POP3 or IMAP (IMAP recommended)
  4. Fill in:
    • Email Address — the mailbox to poll
    • Host — e.g., imap.gmail.com
    • Port993 (IMAP SSL), 995 (POP3 SSL), 143 (IMAP), 110 (POP3)
    • Username & Password
    • EncryptionSSL or None
    • 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)
  5. 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.

Gmail: You must enable IMAP access in Gmail settings and create an App Password. Regular account passwords no longer work with Google's security requirements.

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

  1. Your mail server forwards incoming emails to a script via a pipe or forwarding rule
  2. Deskuss processes the raw email immediately
  3. Emails that don't match an existing ticket become new tickets
  4. Replies to existing ticket notification emails are added as replies to the original ticket

Setting Up

  1. 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"
  2. Make sure the pipe script is executable by the mail user
  3. Send a test email to the piped address and confirm a ticket is created

Piping vs. Fetching

FeaturePipingIMAP/POP3 Fetch
LatencyReal-timePolling interval (default every 5 min)
Server requirementsShell access; ability to set aliasesJust IMAP/POP3 credentials
Setup complexityHigherLower
ReliabilityHigh (no polling to break)Good (depends on polling cron)
Best forHigh-volume mailboxes where latency mattersShared 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:

  1. Go to Deskuss → Emails → Test Outgoing Email
  2. Enter a recipient address you control
  3. Optionally customize the subject and body
  4. Click Send
  5. Check the recipient inbox (allow up to a minute for delivery)

If the test fails:

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.