Email

Recipient lists, deliverability, EU-only routing

Email is the most reliable outbound channel for cross-jurisdiction operators and for inspectors / insurers who do not use Telegram. Slower than push (typical 5–30 s delivery), but accepted everywhere.

Setup

Account → Integrations → Email → Recipients. Add one or more email addresses. Each address gets:

  • A verification mail (one-click).
  • A per-recipient subscription page (unsubscribe / digest setting).

We use double opt-in by default: an address you add does not start receiving alarms until the recipient clicks the verification link. This is GDPR-aligned and keeps you out of spam folders.

Routing

We send via Postmark with EU-only delivery routing for our account. That means:

  • All SMTP delivery attempts originate from EU IPs.
  • DKIM and SPF records are EU-resolved.
  • Postmark stores message metadata in the EU.

If your IT department is strict about non-EU mail processors, Postmark's EU pop is your control point.

Deliverability

We have configured:

  • SPF: v=spf1 include:spf.opensense.murzin.digital -all.
  • DKIM: 2048-bit, key published at standard _domainkey selector.
  • DMARC: p=quarantine; rua=mailto:dmarc@opensense.murzin.digital.
  • Reply-To: alerts@opensense.murzin.digital (a real, monitored inbox).

We do not send transactional and marketing from the same subdomain. Marketing (if we ever do it) lives on marketing.….

What lands where

A typical operator inbox sees:

  • Alarm notifications: from alerts@, subject prefix [ALARM] <site> <channel>.
  • Daily digest (if enabled): from alerts@, subject [OpenSense] daily digest <site>.
  • Monthly report: from reports@, subject OpenSense report — <month> — <site>, with the PDF attached.

If you see something else from us, it is a phishing attempt or a mistake; tell us.

Rate limiting

10 messages per recipient per hour, hard cap. After that, additional events queue and are batched into a single digest at the cap reset. This is by design: a cascading-failure scenario should not produce 60 emails / hour that nobody reads.

Digest

Configure per-recipient or per-site:

PATCH /v1/integrations/email/r_e1d2
{
  "digest_min_interval_min": 60,
  "send_immediate_for": ["alarm"],
  "summary_only_for": ["device_offline", "silence_opened"]
}

alarm always goes immediate by default (override at your own risk).

What you give up

  • No HTML email branding. We send minimal-HTML messages. Customers asking for full corporate HTML branding are an Enterprise tier conversation.
  • No "reply to acknowledge". Use the click-through link in the email body. Reply-tracking is a roadmap item; today the click is the ack.
  • No SMS fallback in Solo. Email + Telegram cover the cases. Team tier will add Twilio fallback for critical alarms.