Author: Steve Purvey

  • Yeastar SMS: add two-way business texting to Yeastar P-Series with everymessage

    Yeastar P-Series is a business phone and contact centre system with omnichannel messaging built in, so agents can handle SMS alongside calls, WhatsApp and live chat in the Linkus client. To send and receive texts it needs an SMS provider, and everymessage can be that provider through Yeastar’s custom SMS channel. This guide explains how it works, what you need, the exact Yeastar settings and how to test it.

    In short: in Yeastar go to Messaging > Message Channel, add an SMS channel with ITSP set to General, and enter the everymessage API key and addresses below. Copy the webhook URL Yeastar gives you and send it to us. Texts from agents go to everymessage, and customer replies come back to Yeastar by signed webhook. No code and nothing to install.

    How the integration works

    When an agent sends a text, Yeastar posts it to everymessage with your API key, and we send it to the mobile networks. When a customer replies to your number, we sign the reply with your Secret and post it to your Yeastar PBX, which routes it to the extension, message queue or message flow you choose. Yeastar can also check the connection from time to time with a quick verification request.

    Outbound
    AgentSends a text from the Linkus client
    Yeastar PBXPosts it to everymessage with your API key
    everymessageSends it and tracks delivery
    Customer’s mobileReceives the SMS
    Inbound
    Customer’s mobileReplies to your number
    everymessageSigns the reply and posts it to your Yeastar webhook
    Yeastar PBXRoutes it to an extension, message queue or message flow
    Yeastar sends messages to the everymessage API; replies come back by signed webhook.

    What you need

    • Yeastar P-Series Software Edition, firmware 83.23.0.24 or later
    • A domain name for your PBX with a valid certificate. Yeastar notes the domain must not contain an underscore
    • An everymessage account with an API key, and a Secret for signing webhooks
    • An SMS-enabled number from everymessage for customers to text and reply to

    Setting it up in Yeastar

    1. Get your details from us. We provide your API key (your API username:password, Base64-encoded), a Secret, and your SMS number.
    2. Add the channel. In the Yeastar web portal go to Messaging > Message Channel, click Add and choose SMS.
    3. Fill in the Authentication tab. Enter a name, set ITSP to General, and enter the values in the table below.
    4. Send us the webhook URL. Choose a Webhook URL from the drop-down, copy it and send it to us. We set it against your number with your Secret, so replies are signed.
    5. Set the sending rate. On the Messaging Settings tab, set the message sending rate. Ask us if you need to send faster than your account allows.
    6. Add your number. In the Number section, add your everymessage number in E.164 format, for example +447700900456, and choose where inbound messages go: an extension, a message queue or a message flow. Then choose which extensions can start conversations, and save.
    7. Test. Check the channel shows as connected, send a text from Linkus, then reply from the mobile and check the reply reaches the right agent.
    Yeastar settingValue
    ITSPGeneral
    API KeyYour everymessage API key (username:password, Base64-encoded)
    SecretThe Secret we give you (recommended)
    API Address for Sending Messageshttps://api.everymessage.com/v1/pbx/messages
    API Address for Verifying Authenticationhttps://api.everymessage.com/v1/pbx/verify (optional)
    Webhook URLCopy it from Yeastar and send it to us

    Picture messages (MMS)

    When someone sends a picture, video or document from Yeastar, everymessage delivers it as an ordinary SMS with a personal, secure link. The link opens a page showing the message and the media, so it works on every phone and network. MMS itself is still patchy on many UK phones and networks.

    • Up to 10 files per message, each up to 5 MB: images (JPEG, PNG, GIF, WebP, HEIC), video (MP4, MOV, 3GP, WebM), audio (MP3, M4A, AAC, AMR, OGG, WAV), PDF and contact cards (vCard).
    • Private by default. Files are copied to UK storage and only shown through the recipient’s own link, which can’t be guessed. Links stay live for 30 days.
    • Text is optional. If a message has no text, we add a short line such as “You’ve been sent a picture. View it here:”.
    • Delivery reports work as normal, because the message itself is an SMS.
    • Simple pricing. A picture message is charged as an SMS plus a media hosting fee.

    If any file can’t be fetched or isn’t a supported type, nothing is sent and Yeastar gets error 10003 with the reason.

    Sending from your company name

    Yeastar sends each text from the number on the SMS channel. If you’d rather customers see your company name, you can set a sender name of up to 11 characters on that number, for example BrightDent, in the everymessage portal (Numbers → edit the number → PBX sender name), or ask us and we’ll set it for you. Texts sent from that number then go out from the name instead, and Yeastar keeps the conversation under your number.

    • One-way only. Customers can’t reply to a name, so use it for numbers that send notifications, not conversations.
    • UK sender ID rules apply. Letters, numbers and spaces, at least one letter, and no restricted generic names such as Verify or OTP. See UK SMS sender ID rules.
    • Per number. Your other numbers keep sending from the number, so two-way conversations carry on as normal.

    API reference

    You don’t need this to use Yeastar, but it shows exactly what Yeastar and everymessage exchange, which helps when testing or troubleshooting. The full reference, with code examples, is in our developer docs: Phone systems (PBX) API.

    Verify the connection

    Yeastar sends a random challenge with your API key. A valid key returns HTTP 200 with the same challenge in the body.

    curl "https://api.everymessage.com/v1/pbx/verify?challenge=mAWpGnyeTZgguOPY" \
      -H "Authorization: Bearer YOUR_API_KEY"

    Send a message

    Yeastar posts each text as JSON. from, to and text are all required, and numbers are in E.164 format.

    curl -X POST "https://api.everymessage.com/v1/pbx/messages" \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer YOUR_API_KEY" \
      -d '{"from": "+447700900456", "to": "+447700900123", "text": "Your order is ready to collect."}'

    A successful request returns HTTP 200 with the message details, including the everymessage message id. Errors return a JSON errors list using Yeastar’s error codes, listed under common problems below.

    Send a picture message

    Add media_urls with up to 10 public file URLs. text is optional when media is included. The response is the same as for a text message.

    {"from": "+447700900456", "to": "+447700900123", "text": "Here's the quote you asked for.",
     "media_urls": ["https://files.example.com/quote-1042.pdf"]}

    Replies

    Customer replies are posted to your Yeastar webhook as a message.received event. When a Secret is set, the request carries an X-Signature-256 header: sha256= followed by the lowercase hex signature of the request body made with your Secret.

    {
      "data": {
        "event_type": "message.received",
        "record_type": "event",
        "payload": {
          "id": "123789",
          "direction": "inbound",
          "type": "SMS",
          "from": { "phone_number": "+447700900123" },
          "to": [ { "phone_number": "+447700900456" } ],
          "text": "Can I collect it tomorrow?",
          "received_at": "2026-10-13T09:15:04.511Z"
        }
      }
    }

    Common problems and fixes

    SymptomLikely causeFix
    Channel won’t connectAPI key or verify address wrongCheck the key is username:password, Base64-encoded, and the verify address ends /v1/pbx/verify
    Error 10004Authentication failedRe-enter the API key
    Error 10001Number can’t be sent toCheck the number is a valid mobile in E.164 format
    Error 10005No permissionCheck the from number is one of your everymessage numbers and your account has credit
    Error 10003A picture or file couldn’t be usedCheck each file is reachable, a supported type and no more than 5 MB, with at most 10 per message
    Customers can’t replyThe number sends from a sender nameNames are one-way. Use a number without a sender name for conversations
    Error 10006Too many requestsLower the sending rate, or ask us to raise your daily limit
    Replies don’t arriveWebhook not set, or Secret mismatchSend us the webhook URL, and check the Secret in Yeastar matches ours
    Replies rejectedPBX domain issueUse a domain with a valid certificate and no underscore

    Why use everymessage for Yeastar SMS

    UK numbers

    Two-way UK numbers that customers can text and reply to, set up and supported by our UK team.

    Signed replies

    Every reply is signed with your Secret, so your PBX only accepts genuine messages from everymessage.

    Sent as typed

    Emoji and accented characters are kept, with Unicode used only when a message needs it.

    Built for volume

    Multiple carrier routes and sending that can burst to 1 million SMS per hour, for busy contact centres and message campaigns.

    Secure and UK-hosted

    Hosted in UK data centres with high availability across the UK and EU, and ISO 27001 certified since 2009.

    More than SMS

    The same platform provides RCS, WhatsApp, email and AI voice assistants.

    Using 3CX? The same everymessage PBX API works with it too: see 3CX SMS. For other platforms, see NetSapiens SMS, Amazon Connect and every way to connect on our Business SMS page.

    Frequently asked questions

    Can Yeastar P-Series send SMS through everymessage?

    Yes. everymessage works as a custom SMS channel in Yeastar P-Series Software Edition, so agents can send and receive business SMS on everymessage numbers from their Linkus clients.

    Which ITSP do I select in Yeastar?

    Select General. Then enter the everymessage API key, the address for sending messages and, optionally, the address for verifying authentication and the Secret.

    What is the Secret for?

    It lets Yeastar check that replies really come from everymessage. We sign every webhook we send to your PBX with it, and Yeastar rejects any request whose signature doesn’t match. It’s optional but recommended.

    Which Yeastar version do I need?

    Yeastar P-Series Software Edition firmware 83.23.0.24 or later, reachable on a domain name with a valid certificate. Yeastar notes the domain name must not contain an underscore.

    Does it support MMS?

    Yes. Pictures, videos and documents sent from Linkus are delivered as an SMS with a personal, secure link that opens the message and media on any phone. Up to 10 files per message, each up to 5 MB.

    Can we send from our company name?

    Yes. You can set a sender name of up to 11 characters on one of your everymessage numbers in the everymessage portal (Numbers, then PBX sender name), or ask us to, so texts sent from that number go out from your name instead. Customers can’t reply to a name, so use it for notification numbers.

    Can agents send emoji and accented characters?

    Yes. Messages are sent exactly as typed. Plain text uses the standard SMS alphabet, and a message with emoji or other characters is sent as Unicode automatically.

    Add SMS to your Yeastar system

    Get your API key, Secret and numbers, and we’ll help you set up the channel and test it end to end.

  • 3CX SMS: send and receive business texts in 3CX with everymessage

    3CX is a business phone system used by thousands of UK organisations, and it can send and receive SMS through a messaging provider. everymessage supports the 3CX generic SMS provider interface, so your 3CX users can text customers from the same web client and apps they use for calls, on UK numbers, with delivery reports and replies in the conversation. This guide explains how it works, what you need and how to set it up.

    In short: add everymessage as the SMS provider in 3CX using our PBX messages URL and your API key, then send us the webhook URL 3CX gives you. Outbound texts go from 3CX to everymessage, and replies and delivery reports come back to 3CX by webhook. No code and nothing to install.

    How the integration works

    3CX sends each outgoing text to everymessage as a simple request with your API key. We send it to the mobile networks and track delivery. When the message is delivered, or a customer replies to your number, we post it straight back to your 3CX system, which shows it in the right conversation.

    Outbound
    3CX userSends a text from the 3CX web client or app
    3CXPosts it to everymessage with your API key
    everymessageSends it and tracks delivery
    Customer’s mobileReceives the SMS
    Inbound and delivery reports
    Customer’s mobileReplies to your number
    everymessagePosts the reply, and each delivery report, to your 3CX webhook
    3CXShows the reply and delivery status in the conversation
    3CX sends messages to the everymessage API; replies and delivery reports come back by webhook.

    What you need

    • A 3CX system that supports SMS through a generic provider
    • An everymessage account with an API key
    • An SMS-enabled number from everymessage for customers to text and reply to, set up in 3CX
    • Your 3CX webhook URL, which 3CX shows when you add the SMS provider

    Setting it up

    1. Get your API key. We provide your everymessage API username and password. Your API key is username:password, Base64-encoded.
    2. Add the SMS provider in 3CX. In your 3CX SMS settings, choose the generic provider, enter the everymessage messages URL below, and paste in your API key.
    3. Add your number. Set up your everymessage SMS number in 3CX and choose which users or queues handle its texts.
    4. Send us your webhook URL. Copy the webhook URL 3CX shows for the provider and send it to us. We set it against your number in the 3CX / Yeastar (PBX) format, for both replies and delivery reports.
    5. Test. Send a text from 3CX, check it arrives and shows as delivered, then reply from the mobile and check the reply appears in 3CX.
    3CX settingValue
    ProviderGeneric SMS provider
    Messages URLhttps://api.everymessage.com/v1/pbx/messages
    API keyYour everymessage API key (username:password, Base64-encoded)
    Number formatInternational E.164 with a +, for example +447700900123

    Picture messages (MMS)

    When someone sends a picture, video or document from 3CX, everymessage delivers it as an ordinary SMS with a personal, secure link. The link opens a page showing the message and the media, so it works on every phone and network. MMS itself is still patchy on many UK phones and networks.

    • Up to 10 files per message, each up to 5 MB: images (JPEG, PNG, GIF, WebP, HEIC), video (MP4, MOV, 3GP, WebM), audio (MP3, M4A, AAC, AMR, OGG, WAV), PDF and contact cards (vCard).
    • Private by default. Files are copied to UK storage and only shown through the recipient’s own link, which can’t be guessed. Links stay live for 30 days.
    • Text is optional. If a message has no text, we add a short line such as “You’ve been sent a picture. View it here:”.
    • Delivery reports work as normal, because the message itself is an SMS.
    • Simple pricing. A picture message is charged as an SMS plus a media hosting fee.

    If any file can’t be fetched or isn’t a supported type, nothing is sent and 3CX gets error 10003 with the reason.

    Sending from your company name

    3CX always sends from the number set on the extension. If you’d rather customers see your company name, you can set a sender name of up to 11 characters on that number, for example BrightDent, in the everymessage portal (Numbers → edit the number → PBX sender name), or ask us and we’ll set it for you. Texts sent from that number then go out from the name instead, and 3CX keeps the conversation under your number.

    • One-way only. Customers can’t reply to a name, so use it for numbers that send notifications, not conversations.
    • UK sender ID rules apply. Letters, numbers and spaces, at least one letter, and no restricted generic names such as Verify or OTP. See UK SMS sender ID rules.
    • Per number. Your other numbers keep sending from the number, so two-way conversations carry on as normal.

    API reference

    You don’t need this to use 3CX, but it shows exactly what 3CX and everymessage exchange, which helps if you’re testing or troubleshooting. The full reference, with code examples, is in our developer docs: Phone systems (PBX) API.

    Send a message

    3CX posts each text as JSON, with your API key as a Bearer token. from, to and text are all required, and numbers are in E.164 format.

    curl -X POST "https://api.everymessage.com/v1/pbx/messages" \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer YOUR_API_KEY" \
      -d '{"from": "+447700900456", "to": "+447700900123", "text": "Your engineer is on the way."}'

    Errors return a JSON errors list with a code, title and detail; the codes are listed under common problems below. A successful request returns HTTP 200 with the message details. The id is the everymessage message id, which 3CX uses to match the delivery report:

    {
      "data": {
        "record_type": "message",
        "direction": "outbound",
        "id": "123456",
        "type": "SMS",
        "from": { "phone_number": "+447700900456" },
        "to": [ { "phone_number": "+447700900123", "status": "queued" } ],
        "text": "Your engineer is on the way.",
        "encoding": "GSM-7",
        "parts": 1
      }
    }

    Send a picture message

    Add media_urls with up to 10 public file URLs. text is optional when media is included. The response is the same as for a text message.

    {"from": "+447700900456", "to": "+447700900123", "text": "Here's the quote you asked for.",
     "media_urls": ["https://files.example.com/quote-1042.pdf"]}

    Replies

    Customer replies are posted to your 3CX webhook as a message.received event:

    {
      "data": {
        "event_type": "message.received",
        "record_type": "event",
        "payload": {
          "id": "123789",
          "direction": "inbound",
          "type": "SMS",
          "from": { "phone_number": "+447700900123" },
          "to": [ { "phone_number": "+447700900456" } ],
          "text": "Thanks, see you soon",
          "received_at": "2026-10-13T09:15:04.511Z"
        }
      }
    }

    Delivery reports

    When a message is delivered or fails, a message.finalized event is posted to the same webhook. payload.id is the id returned when the message was sent, and to[].status is delivered or delivery_failed.

    Common problems and fixes

    SymptomLikely causeFix
    HTTP 401, error 10004API key is wrongCheck the key is username:password, Base64-encoded, with no spaces
    HTTP 402, error 10005Not enough creditTop up your account, or contact us
    HTTP 422, error 10001Number can’t be sent toCheck the to number is a valid mobile number in E.164 format
    HTTP 422, error 10005Sender not allowedCheck the from number is one of your everymessage numbers
    HTTP 422, error 10003A picture or file couldn’t be usedCheck each file is reachable, a supported type and no more than 5 MB, with at most 10 per message
    Customers can’t replyThe number sends from a sender nameNames are one-way. Use a number without a sender name for conversations
    HTTP 429, error 10006Daily sending limit reachedWait for the limit to reset, or ask us to raise it
    Replies don’t appear in 3CXWebhook not setSend us the webhook URL 3CX shows for the provider
    Messages stay unconfirmedDelivery reports not setAsk us to check delivery reports go to the same 3CX webhook

    Why use everymessage for 3CX SMS

    UK numbers

    Two-way UK numbers that customers can text and reply to, set up and supported by our UK team.

    Delivery reports

    Every message is tracked, and its final status is sent back to 3CX so users can see what was delivered.

    Sent as typed

    Emoji and accented characters are kept, with Unicode used only when a message needs it, so nothing a user types is lost.

    Built for volume

    Multiple carrier routes and sending that can burst to 1 million SMS per hour.

    Secure and UK-hosted

    Hosted in UK data centres with high availability across the UK and EU, and ISO 27001 certified since 2009.

    More than SMS

    The same platform provides RCS, WhatsApp, email and AI voice assistants.

    Using Yeastar? The same everymessage PBX API works with it too: see Yeastar SMS. Using a different phone or contact centre platform? See NetSapiens SMS, Amazon Connect and every other way to connect on our Business SMS page.

    Frequently asked questions

    Can 3CX send SMS through everymessage?

    Yes. everymessage supports the 3CX generic SMS provider interface, so 3CX users can send and receive business SMS on everymessage numbers, with delivery reports shown in 3CX.

    What do I enter in 3CX?

    The everymessage PBX messages URL and your everymessage API key. 3CX sends the key as a Bearer token on every message, so there’s nothing else to install.

    How do replies reach 3CX?

    3CX gives you a webhook URL for the trunk. We set it against your everymessage numbers in the 3CX / Yeastar (PBX) format, and every customer reply and delivery report is posted to it.

    Does it support MMS?

    Yes. Pictures, videos and documents sent from 3CX are delivered as an SMS with a personal, secure link that opens the message and media on any phone. Up to 10 files per message, each up to 5 MB.

    Can 3CX send texts from our company name?

    Yes. 3CX always sends from a number, but you can set a sender name of up to 11 characters on that number in the everymessage portal (Numbers, then PBX sender name), or ask us to, so texts from it go out from your name instead. Customers can’t reply to a name, so use it for notification numbers.

    Can users send emoji and accented characters?

    Yes. Messages are sent exactly as typed. Plain text uses the standard SMS alphabet, and a message containing emoji or other characters is sent as Unicode automatically.

    What number format does 3CX use?

    3CX sends and expects numbers in international E.164 format with a leading +, for example +447700900123. everymessage accepts and returns numbers in that format.

    Add SMS to your 3CX system

    Get your API key and numbers, and we’ll help you connect 3CX and test it end to end.

  • NetSapiens SMS: add two-way business SMS with everymessage as your carrier

    NetSapiens is a unified communications (UCaaS) platform used by service providers to deliver voice, video and messaging to their business customers. Its SMS Advanced API lets you plug in your own SMS carrier, and everymessage can be that carrier. This guide explains how the integration works, what you need, how it’s set up and how to test it, so your NetSapiens users can send and receive business SMS through a UK messaging platform.

    In short: add everymessage as a carrier in your NetSapiens SMS Advanced API configuration. Outbound texts are posted to the everymessage send API, and inbound replies are forwarded to your NetSapiens server by webhook. It’s configuration only, with no code, and works with NetSapiens v43 and later.

    How the integration works

    NetSapiens treats everymessage like any other SMS carrier. When a user sends a text, NetSapiens posts it to the everymessage gateway, which sends it to the mobile networks and records delivery. When a customer replies to one of your everymessage numbers, we forward the message to your NetSapiens server, which routes it to the right user.

    Outbound
    NetSapiens userSends a text from their NetSapiens app or portal
    NetSapiens coreSMS Advanced API posts it to the everymessage carrier
    everymessageChecks, sends and tracks delivery
    Customer’s mobileReceives the SMS
    Inbound
    Customer’s mobileReplies to your everymessage number
    everymessageReceives the reply and calls your webhook
    NetSapiens coreReads the message and routes it
    NetSapiens userSees the reply in the conversation
    Outbound SMS uses the NetSapiens SMS Advanced API; inbound replies arrive by webhook.

    What you need

    • NetSapiens v43 or later with the SMS Advanced API enabled (v44 or later if you want to keep the + on inbound numbers)
    • An everymessage account with API credentials
    • CLI or SSH access to your NetSapiens core server, where the carrier settings live
    • SMS-enabled numbers provisioned on everymessage, for customers to text and reply to

    Setting it up

    The integration is a short block of carrier settings on the NetSapiens core server, plus a webhook we set against your numbers. These are the steps; the complete configuration follows.

    1. Choose a carrier name. NetSapiens carrier names must be lowercase and 16 characters or fewer, for example everymessage. A name with capital letters makes outbound messages fail silently.
    2. Point the carrier at everymessage. Set the carrier URL to the everymessage send endpoint we give you, with form-encoded requests.
    3. Map the outbound fields. NetSapiens’ from, to and text values map to the everymessage sender, numbers and message fields.
    4. Add your API key. Your everymessage API key is added as a custom outbound field, so it’s included in every request.
    5. Set the number format. everymessage expects international numbers without a leading +, for example 447700900123, so the outbound plus options are turned off.
    6. Set up inbound. Send us your NetSapiens inbound webhook URL, including your carrier name, and we’ll set it against your numbers. On the NetSapiens side, map the inbound number, sender and message fields, and tell NetSapiens where to find them in our payload.
    NetSapiens settingeverymessage fieldWhat it holds
    outboundFromsenderYour sender ID or number
    outboundTonumbersThe recipient’s number
    outboundTextmessageThe message text
    inboundToinboxNumberYour everymessage number that received the reply
    inboundFromsenderThe customer’s mobile number
    inboundTextcontentThe reply text

    Carrier API configuration

    This is the complete carrier configuration. Add it to /etc/netsapiens/api_config.php on your NetSapiens core server (or nsconfig_include.php, depending on your deployment), and replace the values in capitals:

    • FQDN in the URL: the everymessage API address we give you.
    • BASE64_ENCODED_USERNAME_PASSWORD: your everymessage API key, which is your API username and password in the form username:password, Base64-encoded.
    // everymessage SMS carrier configuration
    
    // API endpoint
    Configure::write('NSCarrier.everymessage.url',
      "https://FQDN/send");
    
    // Content type
    Configure::write('NSCarrier.everymessage.content_type',
      'application/x-www-form-urlencoded');
    
    // Outbound parameter mapping
    Configure::write('NSCarrier.everymessage.outboundFrom', "sender");
    Configure::write('NSCarrier.everymessage.outboundTo', "numbers");
    Configure::write('NSCarrier.everymessage.outboundText', "message");
    
    // Number formatting (no plus prefix)
    Configure::write('NSCarrier.everymessage.outboundToPlus', false);
    Configure::write('NSCarrier.everymessage.outboundFromPlus', false);
    
    // Authentication via apiKey form field
    Configure::write('NSCarrier.everymessage.customOutboundJsonFields',
      "apiKey");
    Configure::write('NSCarrier.everymessage.customOutboundJsonFields.apiKey',
      "BASE64_ENCODED_USERNAME_PASSWORD");
    
    // Inbound: messages arrive inside a "list" array
    Configure::write('NSCarrier.everymessage.customNestedInboundFields',
      ["list", 0]);
    
    // Inbound parameter mapping
    Configure::write('NSCarrier.everymessage.inboundTo', "inboxNumber");
    Configure::write('NSCarrier.everymessage.inboundFrom', "sender");
    Configure::write('NSCarrier.everymessage.inboundText', "content");

    Inbound sender numbers arrive in international format with a +, for example +447700900123. If your deployment expects the +, NetSapiens v44 and later can keep it:

    // Keep the + on inbound numbers (v44 and later)
    Configure::write('NSCarrier.everymessage.inboundToPlus', true);
    Configure::write('NSCarrier.everymessage.inboundFromPlus', true);

    Inbound webhook URL

    Send us your NetSapiens inbound webhook URL and we’ll set it against your everymessage numbers. Replace FQDN with your NetSapiens server’s address, and use the same carrier name as in your configuration:

    https://FQDN/ns-api/?object=sms&action=create&inboundSMS=true&nsCarrier=everymessage

    Replies are delivered inside a list array, which is why the configuration tells NetSapiens to read the first item with ["list", 0]:

    {
      "list": [
        {
          "type": "INBOUND_MESSAGE",
          "messageId": 987,
          "sender": "+447700900123",
          "inboxName": "support",
          "inboxNumber": "447700900456",
          "content": "Yes, please book me in",
          "dateTime": "2026-10-13T09:15:04.511Z"
        }
      ]
    }

    Test your credentials

    Before testing through NetSapiens, check your API key with a direct request in test mode. test=true validates the request without sending the message or using credit, and a successful response includes "status": "success".

    curl -X POST "https://FQDN/send" \
      -d "apiKey=BASE64_ENCODED_USERNAME_PASSWORD" \
      -d "sender=YourCompany" \
      -d "message=Test from NetSapiens" \
      -d "numbers=447700900123" \
      -d "test=true"

    Then send a text from NetSapiens and check the messaging log (tail -f path-to-api/tmp/logs/messaging.log) for NS_SMS200. For replies, look for (Messages.dispatch) create1, which shows the webhook arrived.

    Common problems and fixes

    SymptomLikely causeFix
    Outbound fails with no errorCarrier name has capital lettersUse an all-lowercase carrier name
    Outbound fails with HTTP 401API key is wrongCheck the API key in the custom outbound field
    Outbound fails with HTTP 400A field is missingCheck the from, to and text mappings
    Numbers rejectedWrong number formatSend international numbers without a +
    Replies don’t arriveWebhook URL incompleteCheck the URL includes your carrier name and server address
    Replies arrive emptyInbound fields not mappedCheck the nested inbound setting and the inbound field mappings

    Why use everymessage as your NetSapiens SMS carrier

    UK numbers and sender IDs

    Two-way UK numbers for replies, and branded sender IDs for one-way messages, checked against UK network rules at set-up.

    Built for volume

    Multiple carrier routes and sending that can burst to 1 million SMS per hour, for everything from one-to-one conversations to large campaigns.

    Delivery tracking

    Delivery reports for every message in the everymessage portal and through the API, so you can see what reached each customer.

    Secure and UK-hosted

    Hosted in UK data centres with high availability across the UK and EU, and ISO 27001 certified since 2009.

    More than SMS

    The same platform also provides RCS, WhatsApp and email, so you can grow your messaging with one supplier.

    UK support

    Our own UK team helps you configure the carrier, set up your numbers and test the integration.

    Using a different platform? See our Business SMS page for every way to connect, including the SMS API, SMPP, email-to-SMS and Amazon Connect.

    Frequently asked questions

    Can NetSapiens send SMS through everymessage?

    Yes. NetSapiens v43 and later can use everymessage as an SMS carrier through the NetSapiens SMS Advanced API. Outbound messages are sent to the everymessage gateway, and inbound messages are forwarded to NetSapiens by webhook.

    Which version of NetSapiens do I need?

    NetSapiens v43 or later with the SMS Advanced API enabled. Keeping the + on inbound numbers needs v44 or later.

    Does it support two-way SMS?

    Yes. Customers’ replies to your everymessage numbers are forwarded to your NetSapiens server by webhook, so users see them in NetSapiens alongside their outbound messages.

    Do I need to write any code?

    No. The integration is configuration only: a block of carrier settings on the NetSapiens core server, plus an inbound webhook URL that we set against your numbers.

    What number format does everymessage use?

    Outbound numbers are sent in international format without a leading +, for example 447700900123. Inbound sender numbers arrive in international format with a +, for example +447700900123.

    Can I test without sending messages?

    Yes. The everymessage send API has a test mode that checks a request is valid without sending the message or using credit, so you can confirm your credentials and settings before going live.

    Add SMS to your NetSapiens platform

    Get your API credentials, numbers and our full NetSapiens integration guide, and we’ll help you test it end to end.

  • Forget MMS, here is RCS: picture messages that work for marketing

    For years, the only way to put a picture in a text message was MMS. It never caught on for business: it was expensive, images arrived squashed and blurry, and there was no branding, no buttons and no way to see what happened next. In our experience, the organisations that used MMS marketing most were the mobile networks themselves, promoting their own offers. RCS changes that. This guide explains why MMS didn’t work, what RCS does instead, and how to use images in RCS marketing that customers actually respond to.

    In short: forget MMS. RCS Business Messaging sends sharp images, swipeable carousels and tap-to-act buttons from a verified, branded sender, straight into the phone’s own messaging app. Phones that can’t receive RCS can get the same rich message, images included, as a branded web page by SMS link, so every customer sees your pictures.

    Why MMS never worked for business

    Too expensive

    An MMS cost many times more than an SMS, which ruled it out for campaigns to large customer lists. That’s why most MMS marketing came from the networks, who weren’t paying the same rates.

    Poor image quality

    Networks and handsets shrink MMS images to small file sizes, so photos often arrived compressed, cropped or blurry, which is the opposite of what a marketing image needs.

    No branding

    An MMS comes from a number, with no logo, brand name or verification, so customers can’t easily tell a genuine offer from a scam.

    Unreliable delivery

    MMS depends on mobile data and the right handset settings. Some customers saw a download link or nothing at all instead of the picture.

    No interaction

    There were no buttons. To act on an offer, customers had to type a long web address or reply with a keyword.

    Little to measure

    With limited delivery reporting and no tap tracking, it was hard to know whether a campaign worked.

    Here is RCS: picture messaging done properly

    RCS (Rich Communication Services) is the upgrade to SMS built into modern phones’ default messaging app. With RCS Business Messaging, your messages arrive from your verified brand, with your logo and colours, and can include images, video, rich cards, carousels and buttons. Customers don’t need an app, and they reply or tap in the same place they read their texts.

    BrightShop ✓ Verified
    Summer sale
    20% off garden furniture, SarahYour member discount is ready. Offer ends Sunday at midnight.
    Shop the saleFind my nearest store
    Remind me FridayStop offers
    An RCS rich card: verified brand, image, personalised text and buttons, in the phone’s own messaging app.
    MMSRCS Business Messaging
    SenderA phone numberYour verified brand name, logo and colour
    ImagesSmall, compressed filesSharp images and video, in cards sized for the screen
    LayoutA picture and some textRich cards and swipeable carousels with titles and descriptions
    ActionsType a web address or replyTap to open a link, call, see a map, add to calendar or reply
    TrustEasy to imitateBrand verified before you can send
    ReportingLimitedDelivery reports, replies and button taps
    Phones without itMessage may not arriveeverymessage sends a web version by SMS link, or a plain SMS

    Ways to use images in RCS marketing

    Product carousels

    Show several products in a swipeable carousel, each with its own picture, price and “Buy now” button. Ideal for new ranges, sales and back-in-stock alerts.

    Personal offers

    A single eye-catching card with the customer’s name and offer, and buttons to shop online or find the nearest store.

    Events and launches

    An event image with the date and venue, plus buttons to book, add to calendar or get directions.

    Property and vehicles

    New listings or stock with photos, key details and a button to arrange a viewing or test drive.

    Travel and leisure

    Destination images, last-minute deals and upgrade offers, with a button straight to booking.

    Loyalty and renewals

    A branded card showing points, rewards or a renewal offer, so customers can act in one tap instead of searching for a login.

    Tips for image campaigns that work

    • One clear image, one clear action. Uncluttered pictures with one focal point work best on a small screen, with a single main button.
    • Keep the important words out of the picture. Put the price, date or offer in the card’s title and description, so it’s always readable and works with screen readers.
    • Size for mobile. Use images made for a phone screen and keep file sizes light, so cards load quickly on mobile data.
    • Personalise. Merge the customer’s name, nearest store or offer into each card from your data.
    • Use a carousel for choice, a single card for focus. Carousels suit browsing; a single card suits one offer or reminder.
    • Get consent and offer an opt-out. RCS marketing follows the same UK rules as SMS marketing. Only send to customers who’ve agreed, and include an easy way to stop.
    • Measure and adjust. Compare delivery, replies and button taps between images and offers, and send more of what works.

    Every customer sees your pictures, even without RCS

    Not every phone can receive RCS yet. Where MMS simply failed on those phones, everymessage checks each recipient and picks the best channel automatically.

    1. RCS phones get the full branded message with images, carousels and buttons in their messaging app.
    2. Other phones get an SMS with a personal short link on rcsview.uk, our secure viewing domain. Tapping it opens the same rich message, images, carousel and buttons included, as a branded web page in the phone’s browser. Button taps still come back to you as replies.
    3. Or plain SMS if you prefer a simple text fallback for that send.
    BBrightShop
    Text message · Today 10:02
    BrightShop: Sarah, your 20% summer discount is ready. See your offer: rcsview.uk/k7Qm2
    Plain SMS, works on every phone
    🔒 rcsview.uk/k7Qm2
    BrightShop
    Summer sale
    20% off garden furniture, SarahYour member discount is ready. Offer ends Sunday at midnight.
    Shop the sale Find my nearest store
    The same rich card, as a branded web page
    No RCS? The customer gets an SMS with a personal rcsview.uk link (left), which opens the same rich message in their browser (right).

    Each link is unique to the customer, so the web page shows their personalised card, and the platform records when each link is first opened. Unlike MMS, the pictures don’t depend on handset settings: if the phone can open a web page, the customer sees your images.

    You see what was delivered by RCS, by web link and by SMS in the portal and through the API. Read more about RCS Business Messaging and how it compares in RCS vs SMS vs WhatsApp.

    How to get started

    1. Brand verification. We set up your RCS agent, your branded sender, and take it through verification with Google and the mobile networks.
    2. Design your cards. Build rich cards and carousels with your images in the everymessage Template Designer, with a live preview and no coding.
    3. Choose your audience and fallback. Send to a group from the portal or through the RCS API, and choose a web version or SMS for phones without RCS.
    4. Measure. Track delivery, replies and taps, and refine your next campaign.

    Frequently asked questions

    Is RCS the same as MMS?

    No. MMS sends a picture or short video from a phone number, with no branding or buttons. RCS Business Messaging sends from a verified brand, with your logo, rich cards, swipeable carousels and tap-to-act buttons, and reports what was delivered.

    Can I still send MMS picture messages to UK customers?

    MMS still exists on UK networks, but it was always expensive per message, images are heavily compressed and it carries no branding or buttons. For business picture messages, RCS does everything MMS did and much more.

    What happens if a customer’s phone can’t receive RCS?

    everymessage can send them an SMS with a personal short link on rcsview.uk that opens the same rich message, images and buttons included, as a branded web page. You can choose a plain SMS instead if you prefer.

    Can I send marketing by RCS?

    Yes, under the same UK rules as SMS marketing: you need the customer’s consent, you must identify yourself, and every message needs a simple way to opt out. everymessage can add an opt-out link to rich messages.

    What kind of images work best in RCS cards?

    Clear, uncluttered images with one focal point, sized for a phone screen and kept light so they load quickly. Put key information such as the price or date in the card text rather than inside the image, so it’s always readable.

    Do customers need an app to see RCS picture messages?

    No. RCS messages arrive in the phone’s built-in messaging app, in the same place as their text messages.

    Ready to send your first picture campaign?

    We’ll help you verify your brand, design your first rich cards and choose the right fallback for every customer.

  • Two-way SMS in Amazon Connect: your options and how to set it up

    Customers would often rather send a text than wait on hold. If your contact centre runs on Amazon Connect, you can let them: texts arrive in the agent workspace, agents answer alongside calls and chats, and replies go back to the customer’s phone. This guide explains the two ways to add two-way SMS to Amazon Connect, how each works, and how to choose.

    In short: you can add SMS to Amazon Connect natively, using phone numbers from AWS End User Messaging SMS, or connect your SMS provider so customer texts become Amazon Connect contacts and agent replies go out as SMS. Native suits teams building everything in AWS from scratch. A provider integration suits organisations that already have numbers, sender names and messaging on another platform.

    Why add SMS to your contact centre?

    • Customers already text. Every mobile phone can send an SMS, with no app, login or data connection needed.
    • Fewer calls, shorter queues. Offering “text us instead” in your phone menu or on your website moves simple queries to messaging, where an agent can handle several conversations at once.
    • Replies to your own messages. Customers can reply to an appointment reminder, delivery update or bill, and the reply reaches someone who can help.
    • Asynchronous by nature. Customers reply when it suits them, without staying on a call.

    Two ways to do it

    Native: AWS End User Messaging SMSConnect your SMS provider
    Phone numbersRequested in your AWS account, then imported into Amazon ConnectThe numbers you already use with your provider
    In the agent workspaceAn SMS contactA chat contact, routed by your contact flow
    Set-up in AWSNumber request, registration where required, two-way settings, leaving the SMS sandbox, spend quotaAn access role for the provider, and a message stream for agent replies
    UK sender namesRegistered with AWSManaged with your provider
    BillingThrough AWSThrough your provider, alongside your other SMS
    Other channelsEach configured separately in AWSDepends on your provider; with everymessage, SMS, RCS, WhatsApp and email run from one platform
    Best forNew set-ups built entirely in AWSOrganisations that already send SMS and want to keep their numbers and messaging in one place

    Both approaches let agents answer texts in Amazon Connect, and both let your contact flows route them. The difference is where your numbers, registrations and messaging live.

    Option 1: native SMS through AWS

    AWS End User Messaging SMS provides SMS numbers that you import into Amazon Connect. In outline:

    1. Request a number in the AWS End User Messaging SMS console for the country you’ll message, with two-way messaging switched on. Some countries need the number or sender ID registered first, which AWS says can take up to 15 business days.
    2. Enable two-way SMS on the number, with Amazon Connect as the destination, and import it into your instance.
    3. Update your flows to recognise SMS contacts and route them to the right queue.
    4. Go to production: move your account out of the SMS sandbox and check your spending limit.

    Points to know: a number can’t be shared between voice and SMS, and opt-out keywords such as STOP are handled by AWS unless you set up your own opt-out handling. In the UK, AWS supports two-way SMS on long codes and short codes, and alphanumeric sender IDs must be registered.

    Option 2: connect your SMS provider

    If you already send texts through a messaging provider, you can connect it to Amazon Connect instead. With everymessage it works like this:

    1. A customer texts one of your numbers. The number is set to send its replies to Amazon Connect.
    2. A chat contact starts in Amazon Connect, using the contact flow you choose, so your routing, opening hours and bots apply. Further texts from the same customer join the same conversation while it’s open.
    3. The agent replies in their usual workspace. Amazon Connect streams the reply to a notification topic in your AWS account, which is shared with everymessage.
    4. The reply goes out as an SMS from the same number, so the customer just carries on texting.

    Access is through a role in your AWS account, protected by an external ID, with only the Amazon Connect permissions the integration needs. No AWS keys are shared, and you can withdraw access at any time. See SMS for Amazon Connect (currently in Beta).

    Sending texts from your contact flows

    Whichever option handles inbound texts, your flows can also send SMS. Add an “Invoke AWS Lambda function” block, and have the function call an SMS API. Common uses:

    • After a call: a confirmation, reference number or summary of what was agreed.
    • Instead of waiting: a callback link or a link to self-service while the customer is in the queue.
    • Payments: a secure payment link, so card details are never read out over the phone.
    • Feedback: a short satisfaction survey when the contact ends.

    The everymessage SMS API takes a single HTTPS request and returns a message ID you can store against the contact. Delivery receipts can be sent to your systems by webhook.

    Good practice for SMS in a contact centre

    • Use a number customers can reply to. Messages from a sender name such as your company name can’t be replied to.
    • Set expectations. Tell customers your messaging hours and how quickly you reply, and use an automatic reply outside hours.
    • Keep sensitive details out of texts. Send a secure link instead of account numbers or personal data. See digital letters.
    • Honour opt-outs. Make sure STOP requests are recorded and respected across every system that sends texts.
    • Keep messages short. Long replies are split into several parts and cost more. See SMS character limits explained.
    • Think beyond SMS. For customers who prefer them, RCS and WhatsApp offer richer conversations. Compare them in RCS vs SMS vs WhatsApp.

    Which should you choose?

    Choose native AWS SMS if…

    you’re setting up messaging from scratch, want numbers, registration and billing all in your AWS account, and only need SMS inside Amazon Connect.

    Connect a provider if…

    you already send SMS through a provider, want to keep your existing numbers and sender names, or want SMS, RCS, WhatsApp and email managed and reported in one place, with UK-based support.

    Frequently asked questions

    Can Amazon Connect send and receive SMS?

    Yes. You can add SMS to Amazon Connect natively through AWS End User Messaging SMS, or connect an existing SMS provider such as everymessage, so customer texts arrive as contacts your agents can answer and agent replies go back as texts.

    Does two-way SMS in Amazon Connect work in the UK?

    Yes. AWS supports two-way SMS on UK long codes and short codes, and alphanumeric sender IDs for UK messages must be registered. With everymessage you can use UK mobile numbers you already have with us.

    Do customers need an app to text a contact centre?

    No. Customers use the normal messaging app on their phone. Their texts reach your agents, and the replies arrive as ordinary text messages.

    Can a contact flow send an SMS?

    Yes. A flow can call a Lambda function, and the function can send a text through an SMS API. That’s how flows send confirmations, callback links, payment links and surveys.

    Can customers reply to a sender name such as a company name?

    No. Texts sent from an alphanumeric sender name can’t be replied to. For two-way conversations, send from a mobile number or short code.

    Should I use AWS’s own SMS or an SMS provider?

    If you’re starting from scratch and want everything inside AWS, the native option works well. If you already send SMS through a provider, want to keep your numbers and sender names, or want SMS, RCS, WhatsApp and email managed together, connecting your provider can be simpler.

    Add SMS to your Amazon Connect contact centre

    Our Amazon Connect integration is in Beta. Tell us about your contact centre and we’ll set it up with you.

  • SPF, DKIM and DMARC: a practical guide to email security

    Anyone can send an email that claims to come from your domain. SPF, DKIM and DMARC are three DNS records that let inbox providers check whether it really did. Set up properly, they stop criminals impersonating you, keep your genuine email out of spam folders, and protect the reputation of your domain. This guide explains each one, shows example records, and sets out a safe plan to reach full protection.

    In short: use SPF to list the servers that send your email, DKIM to sign every message with your domain, and DMARC to require that one of them matches the From address and to tell providers to reject what fails. Start DMARC in monitoring mode, fix every legitimate sender, then move to p=reject. Gmail, Yahoo and Microsoft now require all three from bulk senders.

    Why email authentication matters

    • Fraud: phishing and invoice fraud often use a real company’s domain in the From address. Without DMARC enforcement, nothing tells the receiving server to refuse it.
    • Deliverability: inbox providers trust authenticated mail. Unauthenticated email is more likely to be filtered as spam or rejected outright.
    • Reputation: providers build a reputation for your domain from the mail it sends. Authentication ties that reputation to you, so spoofed mail can’t damage it and your good sending history counts.
    • Visibility: DMARC reports show every service sending email as your domain, including ones you didn’t know about.

    What the big inbox providers require

    Since 2024, Gmail and Yahoo have required senders of more than 5,000 messages a day to their users to meet these rules, and Microsoft introduced similar requirements for Outlook.com in 2025:

    • SPF and DKIM set up for the sending domain;
    • a DMARC record, at least p=none, with SPF or DKIM aligned to the From domain;
    • one-click unsubscribe in marketing email, with unsubscribes honoured within two days;
    • a spam complaint rate kept well below 0.3%;
    • valid forward and reverse DNS for sending servers, and TLS encryption.

    Smaller senders benefit from the same rules: the requirements describe what good, trusted email looks like.

    How the three work together

    SPFDKIMDMARC
    What it doesLists the servers allowed to send for a domainAdds a digital signature to each messageRequires an aligned SPF or DKIM pass, sets a policy, sends reports
    What it checksThe sending server’s IP address against the envelope sender (Return-Path) domainThe signature against a public key in the signing domain’s DNSThat the passing SPF or DKIM domain matches the visible From domain
    Where it livesexample.com TXTselector._domainkey.example.com TXT_dmarc.example.com TXT
    Survives forwarding?Usually notYes, if the message isn’t changedYes, through DKIM
    On its ownDoesn’t protect the From address people seeDoesn’t say what to do with failuresNeeds SPF or DKIM to work

    SPF: who is allowed to send

    An SPF (Sender Policy Framework) record is a single TXT record on your domain listing every service that sends email for it: your own mail servers, your office email provider, and any platform that sends on your behalf, such as a CRM, helpdesk, billing system or email platform.

    RecordNameValue (TXT)
    SPFexample.comv=spf1 include:_spf.google.com include:spf.example-esp.net ip4:203.0.113.10 -all
    • One record only. A domain must have exactly one SPF record. Two records make SPF fail. Add new services to the existing record.
    • Stay under 10 lookups. Each include, a, mx and redirect costs a DNS lookup, including the ones nested inside other includes. More than 10 makes SPF fail. Remove services you no longer use, and move bulk senders to their own subdomain.
    • End with -all or ~all. -all (hard fail) says anything not listed is unauthorised. ~all (soft fail) is gentler while you’re still finding senders. Never use +all, which allows anyone.
    • Know its limits. SPF checks the hidden envelope sender, not the From address your recipients see, and it normally fails when a message is forwarded. That’s why you need DKIM and DMARC as well.

    DKIM: a signature on every message

    DKIM (DomainKeys Identified Mail) adds a cryptographic signature to the headers of each email. The sending service signs with a private key; you publish the matching public key in DNS. Receiving servers check the signature, which proves the message was authorised by the signing domain and hasn’t been changed in transit.

    RecordNameValue (TXT)
    DKIMs1._domainkey.example.comv=DKIM1; k=rsa; p=MIIBIjANBgkqh...IDAQAB
    • Sign with your own domain. The signature’s domain (d=) should be your domain, not your provider’s. Only then does DKIM count towards DMARC.
    • One selector per service. The selector (s1 above) lets each sending service have its own key, so you can change or remove one without affecting the others.
    • Use 2048-bit keys where your DNS host and provider support them, and avoid 1024-bit keys for new set-ups.
    • Rotate keys every 6 to 12 months, and straight away if a key may have been exposed. Publish the new selector before switching, then remove the old one.

    DMARC: policy, alignment and reports

    DMARC (Domain-based Message Authentication, Reporting and Conformance) ties SPF and DKIM to the From address people actually see. A message passes DMARC when SPF or DKIM passes and the domain that passed matches the From domain. This matching is called alignment. DMARC then tells receivers what to do with mail that fails, and asks them to send you reports.

    RecordNameValue (TXT)
    DMARC_dmarc.example.comv=DMARC1; p=none; rua=mailto:dmarc-reports@example.com; fo=1
    TagMeaning
    p=The policy for failing mail: none (monitor only), quarantine (send to spam) or reject (refuse it).
    rua=Where to send daily aggregate reports, summarising who sent mail as your domain and whether it passed.
    pct=The percentage of failing mail the policy applies to, so you can roll out quarantine or reject gradually.
    sp=A separate policy for subdomains. Without it, subdomains follow p=.
    adkim= / aspf=Alignment mode: r (relaxed, the default) allows subdomains of the same organisation to match; s (strict) needs an exact match.

    A safe path to p=reject

    1. List your senders. Find every system that sends email as your domain: office email, marketing, CRM, invoicing, helpdesk, website forms, scanners and devices.
    2. Publish p=none with reports. Nothing is blocked, but within a day you start receiving reports.
    3. Fix every legitimate sender. Add it to SPF and turn on DKIM signing with your domain. Read the reports for two to four weeks until all genuine mail passes.
    4. Move to quarantine. Start with p=quarantine; pct=25 and increase to 100 while watching the reports.
    5. Move to reject. Set p=reject. Mail that fakes your exact domain is now refused.
    6. Keep watching. New services get added over time. Check reports regularly, and before you add a new sender, set up its SPF and DKIM first.

    Protecting your sender reputation

    Authentication proves who you are; reputation decides whether providers want your email. Both matter for reaching the inbox.

    • Separate your streams. Send marketing from one subdomain (for example news.example.com) and transactional email from another (mail.example.com). A complaint-heavy campaign then can’t delay password resets or invoices.
    • Warm up new domains and IP addresses. Start with small volumes to your most engaged recipients and increase gradually over a few weeks.
    • Only email people who asked. Use confirmed opt-in for marketing, never buy lists, and make unsubscribing one click.
    • Remove bounces and inactive recipients. Stop sending to addresses that hard bounce or complain, and stop marketing to people who haven’t opened or clicked in months.
    • Watch your complaint rate. Keep spam complaints below 0.1%, and never let them reach 0.3%. Google Postmaster Tools and Microsoft SNDS show how providers see your domain.
    • Be recognisable. Use a consistent From name and address, avoid link shorteners, and send email people expect. See transactional email template best practices.

    Preventing spam and fraud

    • Enforce DMARC. p=reject is the single most effective step against criminals using your exact domain.
    • Lock down unused domains. For every domain or subdomain that doesn’t send email, publish the records below.
    • Watch for lookalikes. DMARC doesn’t cover lookalike domains such as examp1e.com or example-billing.com. Register obvious variants and monitor new registrations that resemble your brand.
    • Add your logo with BIMI. Once DMARC is at quarantine or reject, BIMI can show your verified logo next to your email in supporting inboxes. Gmail requires a verified mark certificate.
    • Encrypt mail in transit. MTA-STS and TLS reporting make other servers use encrypted connections when sending to you, and tell you when that fails.
    • Don’t put sensitive details in email. Send a notification that links to a secure portal instead. See digital letters.
    • Train your staff to check the real sender address, not just the display name, and to verify payment changes by phone.
    RecordNameValue (TXT)
    SPFparked.example.comv=spf1 -all
    DMARC_dmarc.parked.example.comv=DMARC1; p=reject;

    Add a null MX record (MX 0 .) to show the domain receives no email either.

    Checklist

    1. One SPF record per sending domain, listing every service, under 10 lookups, ending -all or ~all.
    2. DKIM signing with your own domain on every service, using 2048-bit keys, rotated regularly.
    3. A DMARC record with reporting, moved from p=none to p=reject once all genuine mail passes.
    4. Separate subdomains for marketing and transactional email.
    5. One-click unsubscribe, automatic bounce and complaint suppression, and a low complaint rate.
    6. SPF -all, DMARC p=reject and a null MX on every domain that doesn’t send email.
    7. Regular review of DMARC reports and provider reputation dashboards.

    How everymessage helps

    • Authenticated from the first send. Every sending domain on our business email platform is set up with SPF, DKIM and DMARC, and we help you add the records.
    • Reputation protected automatically. Hard bounces, spam complaints and unsubscribes are suppressed, so you don’t keep emailing people who can’t or don’t want to receive it.
    • Email to SMS checks too. Our email to SMS service only accepts mail that passes SPF, and can require DKIM, so nobody can send texts by faking your address.

    Frequently asked questions

    What is the difference between SPF, DKIM and DMARC?

    SPF lists the servers allowed to send email for your domain. DKIM adds a digital signature that proves the message came from your domain and wasn’t changed. DMARC checks that SPF or DKIM passed for the domain in the visible From address, tells inbox providers what to do with mail that fails, and sends you reports.

    Do I need all three?

    Yes. Gmail, Yahoo and Microsoft now expect bulk senders to use SPF, DKIM and DMARC, and each one covers gaps in the others. SPF breaks when email is forwarded, DKIM alone doesn’t tell providers what to do with failures, and DMARC needs at least one of the other two to pass.

    Should my SPF record end in -all or ~all?

    Once DMARC is in place, either works, because DMARC decides what happens to failing mail. -all (hard fail) is the stricter choice when you’re sure every sending service is listed. ~all (soft fail) is safer while you’re still finding services that send for you.

    Will DMARC p=reject stop my own emails?

    Only if a legitimate service sends as your domain without passing aligned SPF or DKIM. That’s why you start with p=none, read the reports for a few weeks, fix every legitimate sender, and only then move to quarantine and reject.

    Does DMARC stop all phishing?

    No. It stops criminals sending email that uses your exact domain. It doesn’t stop lookalike domains, such as examp1e.com, or free email accounts with your company name in the display name. Monitor lookalikes and train staff to check the real sender address.

    What about domains we don’t send email from?

    Protect them too. Publish an SPF record of v=spf1 -all, a DMARC policy of p=reject and a null MX record, so nobody can send convincing email from them.

    Want a second opinion on your email set-up?

    Tell us about your domains and sending services, and we’ll help you get SPF, DKIM and DMARC right.

  • Email to SMS: how to send texts from your email

    Email to SMS lets you send a text message from any email account, with no software to install. Write an email, address it to a mobile number at @emsg.me.uk, and we deliver it as an SMS. This guide covers how to address your email, what gets sent, how to keep disclaimers and signatures out of your texts, the account settings that control length and delivery receipts, and how replies come back to your inbox.

    In short: send an email to 07700900123@emsg.me.uk and the message body arrives as a text on that mobile. Your account settings decide whether the subject or the body is sent, how long a message can be, and whether you get a delivery receipt. Send from a two-way mobile number and replies come back to you as emails.

    How it works

    1. Register your email address. Your email address is your everymessage login. We only accept email to SMS from registered addresses, so your credit can’t be used by anyone else.
    2. Address the email to a mobile number. Put the number in front of @emsg.me.uk. Add as many numbers as you need in To, Cc or Bcc.
    3. Write your message. We take the email body (or the subject, if your account is set up that way), remove signatures and quoted replies, and send it as an SMS.
    4. Get receipts and replies by email. Delivery receipts and replies from the mobile come back to your inbox, if your account is set up for them.

    Addressing your email

    The part of the address before the @ is the mobile number. Use digits only. We convert UK numbers to international format for you.

    You send toWe send the SMS toNotes
    07700900123@emsg.me.uk+44 7700 900123UK mobile in national format.
    447700900123@emsg.me.uk+44 7700 900123UK mobile in international format.
    33612345678@emsg.me.uk+33 6 12 34 56 78International: start with the country code. A leading 00 also works.
    sales@emsg.me.ukEvery member of your sales contact groupUse a contact group’s name or email alias from the portal. Members who have unsubscribed are skipped.
    credits@emsg.me.ukNothing is sentWe reply with your account’s remaining credit (pay-as-you-go accounts).
    • Several recipients: add each number as a separate address. To, Cc and Bcc all work, so you can Bcc mobiles without the others seeing them.
    • Other email addresses: you can copy in colleagues on ordinary email addresses. They get the email as normal; only the @emsg.me.uk addresses are sent as texts.
    • Avoid the + sign and spaces in the address. Some email programs change or reject them.

    Body or subject: what gets sent

    By default, the email body becomes the SMS and the subject is ignored. If you’d rather type short messages in the subject line, turn on Use subject as SMS for your account. The subject is then sent, and the body is ignored.

    Use subject as SMS: off (default)Use subject as SMS: on
    Sent as the SMSThe email bodyThe subject line
    Best forLonger messages, and messages sent by business systemsQuick one-line messages from a phone or email client
    Signatures and disclaimersRemoved using the options belowNot an issue: the body isn’t sent
    Maximum lengthSet by your account’s Max segments (see below)

    When we read the body, we:

    • use the plain-text version of the email, or convert HTML email to plain text;
    • stop at the first quoted reply or signature break: a line starting --, -----Original Message-----, On ... wrote:, From:, a line of underscores, or a line starting >;
    • tidy up extra spaces and blank lines.

    Attachments are not sent. For the best results, send plain-text email and keep to standard characters: see SMS character limits for why that matters.

    Choosing the sender

    Your texts come from your account’s default sender, which is a sender name (up to 11 letters and numbers) or one of your mobile numbers. To use a different sender for one message, add sender= at the end of the subject line:

    To07700900123@emsg.me.uk
    SubjectAppointment reminder sender=BRIGHTCARE
    BodyYour appointment is tomorrow at 10:30. Call 01234 567890 to change it.

    Put the sender= token last, because everything after it is read as the sender. The sender must be a name you’re allowed to use, or a number on your account.

    Keeping disclaimers and signatures out of your texts

    Most business email adds a signature or legal disclaimer. Signatures that start with a standard -- line are removed automatically. For anything else, there are two ways to stop it reaching the text.

    1. The Email disclaimer setting

    In the portal, enter the first few words of your disclaimer in Email disclaimer, exactly as they appear in your emails, for example This email is confidential. We cut the message at the first place that text appears, so the disclaimer and everything after it are removed.

    The setting holds up to 50 characters and must be at least 3. Capital letters don’t matter. Enter * or leave it blank for no disclaimer.

    2. Custom end tags

    Wrap your message between #%# and ##. Only the text between the tags is sent, whatever comes before or after it.

    This is the most reliable option when a disclaimer is added by your mail server after you press send, or when an automated system writes the email and you can’t control the rest of the body.

    To07700900123@emsg.me.uk
    Body#%#Your engineer will arrive between 10:00 and 12:00 today.##

    Kind regards,
    Service team
    This email and any attachments are confidential…

    The text above sends only Your engineer will arrive between 10:00 and 12:00 today. Don’t use ## inside the message itself, because the first ## ends it.

    A third option is Use subject as SMS: the body, and any disclaimer in it, isn’t sent at all.

    Account settings for email to SMS

    An administrator sets these for each user in the portal (Users, then Edit).

    SettingWhat it does
    Max segmentsThe longest message the user can send, from 1 to 6 SMS parts. One part holds 160 characters; six joined parts hold 918. A longer message isn’t sent. Keeping this low means a long email thread sent by mistake can’t use up your credit.
    Daily limit (£)The most the user can spend in a day. Messages over the limit are rejected and the sender is told why.
    Email receiptWhen on, every email to SMS message asks for a delivery receipt. When off, you can still ask for one per message by turning on a read receipt (return receipt) in your email client.
    Delivery ruleWhere delivery receipts go: Via Email, Via URL (to your system’s webhook), Via Email & URL, or Collect / Portal (held for you to collect through the API or portal).
    Use subject as SMSSends the email subject instead of the body.
    Email disclaimerThe text at which the email body is cut, to remove a disclaimer.
    OriginatorThe user’s default sender: a sender name, or a two-way mobile number if you want replies.

    Delivery receipt emails

    With the delivery rule set to email, you get an email when the network confirms the outcome. The subject says whether the message was delivered, expired or rejected, and the original message is quoted underneath.

    Each receipt comes from the mobile number itself, for example 447700900123@emsg.me.uk. Reply to the receipt and your reply is sent to that mobile as a new text.

    Replies: SMS back to your email

    People can’t reply to a sender name such as BRIGHTCARE. To have a conversation, send from a two-way mobile number on your account:

    1. Set the user’s Originator to your two-way number, or add sender= with the number to the subject.
    2. Set the number’s Reply handling to Email (or Email & URL, to also send replies to your system).
    3. Replies arrive in your inbox, sent to the email address of the user who sent the original message. Each one comes from the mobile, for example 447700900123@emsg.me.uk, with your original message quoted below.
    4. Reply to the email to answer. Your reply goes back to the mobile as a text. The quoted history in your reply is removed automatically, so only your new words are sent.

    A text that isn’t a reply to a recent message, such as a customer texting your number first, is emailed to the number’s owner with the subject Incoming SMS. You can reply to it in the same way.

    Security

    • Registered senders only. Email from addresses that aren’t registered users is rejected.
    • Checked at the door. Incoming email must pass SPF, and can also be required to pass DKIM, so messages pretending to come from your domain are refused.
    • Spam and viruses are filtered before anything is read. Automatic replies, out-of-office messages and bounces are ignored, so they never become texts.
    • Whole-domain sign-up (optional). Your administrator can let anyone at your company’s email domain send without being added one by one. New senders get your company’s default settings.

    If a message isn’t sent

    We email the sender with the reason. The common ones:

    ReasonWhat to do
    No valid mobile recipientCheck the number before the @: digits only, starting 07, 44 or another country code.
    No group foundCheck the group name or alias in the portal. Groups are per company.
    Message body was emptyEverything was removed as signature or disclaimer, or Use subject as SMS is on and the subject was blank. Check your Email disclaimer setting, or use end tags.
    Insufficient credits / daily limit reachedTop up your account, or ask your administrator about the user’s daily limit.
    Message authentication (DKIM) failedYour company requires DKIM. Ask your email administrator to check DKIM signing for your domain.
    Message too longThe message needs more SMS parts than your Max segments allows. Shorten it, check that a long signature or reply thread isn’t being included, or ask your administrator to raise the limit.

    Frequently asked questions

    What email address do I send to?

    Put the mobile number in front of @emsg.me.uk, for example 07700900123@emsg.me.uk. You can use UK numbers starting 07 or 447, or any international number starting with its country code.

    Can I send one email to several mobiles?

    Yes. Add each number as its own address in To, Cc or Bcc. Every number receives the same message. You can also send to a contact group by using the group’s name as the address.

    Is the email subject sent?

    Not by default. The message body becomes the SMS. If you turn on Use subject as SMS for your account, the subject line is sent instead and the body is ignored.

    How do I stop my email disclaimer appearing in the text?

    Enter the first words of your disclaimer in the Email disclaimer setting, and everything from that point is removed. Or wrap your message in #%# and ## so only the text between them is sent.

    How do I know my message was delivered?

    Turn on Email receipt for your account, or request a read receipt in your email client. You’ll get an email when the network confirms delivery or failure.

    Can people reply to my texts?

    Yes, if you send from a two-way mobile number on your account and its replies are set to Email. Replies arrive in your inbox, and you answer them by replying to the email.

    Who can send email to SMS?

    Only email addresses registered to your account. Mail from anyone else is rejected, so nobody can spend your credit by sending to our address.

    Start sending texts from email

    We’ll set up your users, sender names and two-way numbers so you can send and receive texts from the email you already use.

  • Royal Mail’s blocked price rise: what it means for your mailings

    Royal Mail’s planned October 2026 increase in bulk mail prices was blocked at the last minute. But postage is still going up: revised prices are due in December, and the final increase isn’t clear yet. Here’s what happened, what it means for your mailings, and how organisations are cutting the volume they need to post.

    In short: Ofcom suspended Royal Mail’s proposed access (bulk) mail price rises in September after a complaint from the industry, and Royal Mail withdrew them on 5 October 2026. Revised, lower increases are now intended for early December. Prices will still rise, so it’s a good time to move to digital-first delivery and post only what you have to.

    What happened

    DateEvent
    23 July 2026Royal Mail notifies access customers of price increases (Contract Change Notice 129), due on 5 October. Reported rises include around 36% for some access business letters and 11 to 12% for some advertising mail.
    4 September 2026Ofcom accepts a dispute from the Mail Competition Forum, acting for 17 access customers, to decide whether the increases are fair and reasonable. The increases are suspended while it does.
    Late September 2026Royal Mail issues revised access prices under a new notice, which it says are lower than the original proposal, intended for early December 2026.
    5 October 2026No increase takes effect. Royal Mail withdraws the original notice and Ofcom closes the dispute.

    Source: Ofcom, Dispute between Mail Competition Forum and Royal Mail.

    Prices will still rise: we’re waiting to see by how much

    The October increase was stopped, not cancelled. The revised prices are still increases, and they could take effect in December unless there are further complaints to Ofcom. How much more any particular mailing will cost depends on the format, weight, service level and how the mail is sorted and presented, so there is no single percentage that applies to everything.

    The dispute only covered access mail, the route most bulk business mail takes. Other Royal Mail services, including stamps, are priced separately.

    We’re reviewing the revised prices as the detail is confirmed and will update our print and post customers on what it means for their mailings. In the meantime, plan for higher postage in 2027 budgets, and book autumn and Christmas mailings early.

    Post less: digital first, paper where needed

    The most reliable way to protect yourself from postage increases is to send less post. A digital-first approach works like this:

    1. Send a secure digital letter. Each customer gets an email or SMS inviting them to view their letter or document online.
    2. Protect the content. The document sits in a secure, branded portal behind two-factor verification, so only the right person can open it.
    3. Track every invite. You see whether each invite was delivered, and whether the document was opened.
    4. Post only the rest. Where an email bounces or an SMS fails, the letter is printed and posted automatically, so everyone still receives it.

    Digital letters arrive in minutes rather than days, cost a fraction of a posted letter, and come with proof of delivery and opening that post can’t give you. Some notices must still go by post, and some customers need paper. A digital-first approach keeps the post for them.

    In practice: two projects from 2025

    A UK council

    The council delivered its customer mailings as secure digital letters. Residents received a link to a branded portal, where each document sat behind two-factor verification. For council billing, residents also confirmed their postcode, a further check before any billing details were shown.

    A finance house

    A finance house needed to send updated terms and conditions to its customers. Every invite was tracked through to delivery, opening or failure. Only the customers whose email or SMS invite failed were sent a printed letter: about 10% of the overall volume. The other 90% received their terms digitally, with a record of delivery.

    Making the post you do send cost less

    • Use bulk mail services, not stamps. Access mail through a mailing partner costs far less per item than a stamp.
    • Qualify for marketing discounts. Mailings planned to Royal Mail’s advertising mail requirements can attract lower postage. Talk to us before you design the mailing.
    • Clean your data. Every letter sent to a wrong or out-of-date address is wasted postage and print.
    • Choose the right format and weight. A small change in size or paper weight can move a mailing into a cheaper price band.

    How everymessage helps

    • Digital letters: secure, branded documents delivered by email or SMS, behind two-factor verification, with tracking from delivery to opening.
    • Print and post: printing, enclosing and postage handled for you, including Royal Mail marketing discounts on mailings that qualify.
    • Automatic fallback: letters are posted only where digital delivery fails, from one platform.
    • Your brand throughout: our AI branding tool styles your forms and documents in your own brand, online and on paper.

    Frequently asked questions

    Did Royal Mail’s October 2026 price rise go ahead?

    No, not for access (bulk business) mail. Ofcom accepted a dispute over the proposed increases on 4 September 2026, which suspended them, and Royal Mail withdrew the notice on 5 October 2026. Revised access prices, which Royal Mail says are lower, are intended to take effect in early December 2026.

    Will postage still go up?

    Almost certainly. The revised access prices are still increases, and other Royal Mail products are priced separately. The size of the rise for any mailing depends on the format, weight, service and sortation used.

    What is access mail?

    Bulk business mail that is collected and sorted by a postal operator or mailing house before being handed to Royal Mail for final delivery. It’s how most large mailings reach a lower price per item than stamps.

    Can every letter be sent digitally instead?

    Not always. Some notices must be sent by post, and some customers prefer or need paper. A digital-first approach sends a secure digital letter where it can be delivered and tracked, and posts a printed copy to everyone else.

    How much post can a digital-first approach save?

    It depends on how complete and accurate your email and mobile data is. In one 2025 project for a finance house, only about 10% of the total volume needed to be printed and posted.

    Find out how much post you could save

    Tell us about your mailings and we’ll show you how a digital-first approach would work for your customers.

  • RCS vs SMS vs WhatsApp: which should your business use?

    SMS, RCS and WhatsApp all put a message on your customer’s phone, but they reach different people, show different things and cost different amounts. This guide compares them side by side and shows which to use for common jobs, and when to use more than one.

    In short: SMS reaches every mobile phone, with or without data, so it’s the safe choice for critical alerts and passcodes. RCS turns a text into a branded, verified, interactive message in the same inbox, with SMS as a fallback. WhatsApp is best for conversations with customers who use it and have opted in. Most organisations get the best results by combining them.

    At a glance

    SMSRCSWhatsApp
    Where it arrivesThe phone’s messaging appThe phone’s messaging appThe WhatsApp app
    Who can receive itEvery mobile phoneAndroid phones and iPhones on iOS 18 or later, where the network supports RCSPeople who use WhatsApp and have opted in to your messages
    Needs mobile data or wi-fiNoYesYes
    Sender shownA sender name (up to 11 characters) or a phone numberYour verified brand name, logo and colourYour verified business profile
    ContentPlain textText, images, video, rich cards, carousels and buttonsText, images, documents, video, audio and buttons
    Message length160 characters per part; longer messages are joinedUp to 3,072 characters of textUp to 4,096 characters of text
    Starting a conversationAny time (with consent for marketing)Any time (with consent for marketing)Approved templates only, unless the customer messaged you in the last 24 hours
    ReceiptsDeliveredDelivered and readDelivered and read
    If it can’t be delivered–Fall back to SMS or a web versionFall back to SMS or another channel
    Best forUniversal alerts, passcodes, critical messagesBranded, interactive journeys in the native inboxConversations and customer service with opted-in customers

    SMS: reaches everyone

    SMS works on every mobile phone in the country, old or new, and doesn’t need mobile data, wi-fi or an app. Messages arrive in seconds, and almost all are read. That makes SMS the dependable choice when a message simply has to get through: passcodes, outage and emergency alerts, delivery and appointment reminders.

    • Strengths: universal reach, no app or data needed, fast, simple, and supported by every business system.
    • Limits: plain text only, 160 characters per message part, and a sender that can be imitated by scammers. In the UK, the SMS SenderID Protection Registry helps stop criminals using registered brand names.
    • Cost: charged per message part, typically a few pence in the UK. Long messages and emoji use more parts, so it pays to understand SMS character limits.

    RCS: SMS, upgraded

    RCS (Rich Communication Services) Business Messaging arrives in the same messaging app as SMS, but the sender is a verified brand with your name, logo and colours. Messages can include images and video, rich cards with buttons, swipeable carousels, and suggested replies such as “Confirm” or “Reschedule” that customers tap instead of typing.

    • Strengths: a trusted, branded sender that is hard to imitate; rich, interactive content in the inbox customers already use; and read receipts, so you know a message was seen, not just delivered.
    • Limits: the phone, the network and a data connection all need to support it. Android phones support RCS through Google Messages, and Apple added it to iPhone with iOS 18.
    • Fallback: anyone who can’t receive RCS gets an SMS instead, or an SMS with a link that shows the same rich message as a branded web page, so nobody misses out.
    • Cost: charged per message, with plain-text RCS usually close to the price of an SMS and rich messages costing more. Fallback messages are charged as SMS.

    Read more about RCS Business Messaging with everymessage.

    WhatsApp: built for conversation

    WhatsApp Business messages arrive in the WhatsApp app, from your verified business profile. They support text, images, documents, voice notes and buttons, and they suit two-way conversations: customer service, bookings and support.

    • Strengths: very widely used in the UK and worldwide, great for back-and-forth conversations, and inexpensive for reminders, passcodes and replies to customers who message you first.
    • Limits: customers must use WhatsApp and opt in to messages from you. To start a conversation you must use a template approved by WhatsApp, and free-form messages are only allowed for 24 hours after the customer’s last message.
    • Privacy: Meta runs the platform and handles message content, so avoid sending medical or financial details by WhatsApp.
    • Cost: Meta’s fee per message, which depends on the message category, plus our usage fee. See WhatsApp message types and pricing explained.

    Which channel for which job?

    JobBest choiceWhy
    One-time passcodesSMS, or WhatsApp with SMS fallbackSMS reaches every phone instantly. WhatsApp authentication messages can cost less for customers who use it.
    Appointment remindersRCS with SMS fallbackBranded reminder with “Confirm” and “Reschedule” buttons, while SMS covers everyone else.
    Delivery updatesRCS or WhatsApp, with SMS fallbackImages, tracking buttons and maps make updates clearer.
    Marketing campaignsRCS with fallback, or SMSCarousels and images from a verified brand stand out; SMS is simple and reaches everyone. WhatsApp marketing costs more and needs opt-in.
    Customer serviceWhatsApp, or RCSCustomers can start a chat from your website, an email or an SMS link, and replies in the 24-hour window cost little.
    Emergency and outage alertsSMSWorks without data or an app, on every phone, even when networks are busy.
    Sensitive informationSMS or RCS with a secure linkSend a notification and link to a secure portal rather than the details themselves.

    Using them together

    You don’t have to choose one channel. The most effective set-ups use each where it’s strongest:

    1. RCS first, SMS fallback. Send a branded, interactive message; anyone who can’t receive RCS automatically gets an SMS or a web version, so you reach everyone.
    2. WhatsApp where customers prefer it. Use WhatsApp for customers who have opted in, and for conversations they start.
    3. SMS for the critical path. Keep SMS for passcodes and urgent alerts, where reaching every phone matters more than looks.
    4. Journeys across channels. With Workflow, follow an unread message with a reminder on another channel, or an email, or a call.

    everymessage runs SMS, RCS, WhatsApp and email from one platform, one inbox and one API, with delivery reporting for every channel.

    Frequently asked questions

    What is the difference between RCS and SMS?

    SMS is plain text from a number or sender name and works on every mobile phone. RCS arrives in the same messaging app but comes from a verified brand with your logo, and can include images, rich cards, carousels and buttons. It needs a phone and network that support RCS and a data connection; when it can’t be delivered, an SMS can be sent instead.

    Is RCS available on iPhone?

    Yes. Apple added RCS to iPhone with iOS 18, and Android phones support it through Google Messages, where the mobile network supports it. Phones that can’t receive RCS can get an SMS or a web version instead.

    Is WhatsApp cheaper than SMS for businesses?

    For utility and authentication messages, such as reminders and passcodes, usually yes in the UK. Marketing messages on WhatsApp cost more, and every recipient must have WhatsApp and have opted in to hear from you.

    Which channel is best for one-time passcodes?

    SMS reaches every phone without needing data or an app, so it remains the safest default. WhatsApp authentication messages can cost less for customers who use WhatsApp, with SMS as the fallback.

    Can I use more than one channel?

    Yes. With everymessage you can send by RCS with automatic SMS fallback, use WhatsApp for customers who have opted in, and run all three from one platform, inbox and API.

    Not sure which channel to use?

    Tell us what you need to send and to whom, and we’ll recommend the right mix.

  • Transactional email templates: best practices for design and delivery

    Order confirmations, receipts, password resets and appointment reminders are the emails customers actually wait for. This guide covers how to design transactional email templates that look right in every inbox, reach the inbox in the first place, and meet UK requirements.

    In short: keep transactional emails single-purpose, single-column and around 600 pixels wide; put the key fact and one clear action at the top; make them readable with images off and in dark mode; authenticate your domain with SPF, DKIM and DMARC; include your company details; and keep marketing out of them.

    What makes an email transactional

    A transactional email is sent because of something the recipient did, or something that affects their account: a purchase, a booking, a password reset, a change of address, a delivery update, an invoice or a security alert. People expect it, often within seconds, and they act on it.

    That changes the design brief. A marketing email competes for attention; a transactional email has the attention already and must not waste it. Success means the customer finds the information quickly, trusts that the email is genuine, and can do the one thing it asks.

    Anatomy of a good transactional template

    1. A recognisable sender. Your brand as the sender name (for example “Example Ltd” or “Example Ltd Orders”), from an address on your own domain.
    2. A specific subject line. Say what happened and include the reference: “Your order A1042 is confirmed”, not “Thank you!”.
    3. Preheader text. The preview line after the subject. Use it for the next most useful fact, such as the delivery date.
    4. A headline that states the purpose. The reader should know why the email arrived within a second.
    5. The key details. Order number, amount, date and time, address: laid out so they can be scanned, not buried in paragraphs.
    6. One primary action. Track the order, reset the password, confirm the appointment. One button, clearly labelled.
    7. Help and contact. How to get support, in the email itself.
    8. A footer with your business details. UK companies must show their registered name, company number, place of registration and registered office address in business emails.

    Design and layout

    Build to a standard width

    Design at 600 to 640 pixels wide. That fits the reading pane in desktop clients, and a single media query lets the layout fill the screen on a phone. A wider template is either shrunk or scrolled sideways, and both make it harder to read.

    Use one column

    Single-column layouts read naturally on phones, where most transactional email is opened, and avoid the column-collapsing problems that multi-column designs bring. Give elements generous spacing so buttons and links are easy to tap.

    Lead with the key information

    Put what the customer needs first: the order is confirmed, the code is 482913, the appointment is on Tuesday at 10:30. Everything else is secondary.

    Have one clear call to action

    Make the main action a proper button, at least 44 pixels tall, with a label that says what happens (“Reset your password”, “Track your order”). Secondary links can be plain text.

    Stay on brand, but keep it simple

    Use the same logo, colours and tone across every template, so customers recognise genuine emails from you, which also helps them spot phishing. Resist heavy imagery: a transactional email should still make sense with every image blocked.

    Write plainly

    Short sentences, everyday words, no internal jargon or system codes. If something needs action, say exactly what and by when.

    Built to render everywhere

    Email clients don’t render HTML like browsers. Desktop Outlook on Windows uses a word-processor engine, Gmail removes some styles, and every phone app behaves slightly differently. Build defensively:

    • Use tables for layout and inline CSS for styling. Keep a small <style> block only for media queries and dark-mode tweaks.
    • Use web-safe font fallbacks. A custom web font is fine where it’s supported, but always list Arial, Helvetica or similar after it.
    • Make buttons from padded table cells with a link inside, not images, so they display even with images off.
    • Give every image alt text and fixed dimensions, and host images on HTTPS. Many inboxes block images until the reader allows them.
    • Keep images light. Compress them, use PNG for logos and JPEG for photos, and supply them at twice the display size for sharp screens.
    • Add a static fallback for animated GIFs. Some versions of Outlook show only the first frame.
    • Keep the HTML under about 100 KB. Gmail clips larger messages and hides the rest behind a “View entire message” link, which can hide your footer.
    • Send a plain-text version too. A multipart email with a plain-text part is more accessible and looks less like spam.

    Dark mode

    Many people read email in dark mode, and clients handle it differently: some leave your colours alone, some invert them fully, and some only partly. To stay readable:

    • Use logos with a transparent background and a light outline or padding, so they don’t vanish on a dark background.
    • Avoid text that is part of an image; it can’t adapt.
    • Declare color-scheme support and add prefers-color-scheme styles where they’re supported.
    • Check contrast in both modes, not just light.

    Accessibility

    • Set the language (<html lang="en">) and use real headings and paragraphs, so screen readers can navigate.
    • Mark layout tables with role="presentation", so they aren’t read out as data tables.
    • Keep text contrast at 4.5:1 or more, and body text at 14 to 16 pixels.
    • Write link text that makes sense on its own, such as “View your invoice”, rather than “Click here”.
    • Don’t rely on colour alone to show status: write “Payment failed”, don’t just show red.

    Personalisation

    Templates should be built around fields that are filled in for each message: name, reference, amounts, dates, addresses, links. Plan for missing data: a greeting should still read well if the first name is blank (“Hello” rather than “Hi ,”), and long values such as addresses shouldn’t break the layout.

    Never put passwords in an email. Make links that act on an account, such as password resets, single-use and short-lived, and show only partial details for sensitive information: the last four digits of a card, not the full number.

    Keep marketing out

    It’s tempting to add offers to emails with high open rates. In the UK, a genuine service message doesn’t need marketing consent under PECR, but once you add promotional content the ICO may treat the whole email as direct marketing. That means it needs consent or a valid soft opt-in, and an unsubscribe link, and it can’t be sent to people who have opted out. It also distracts from the purpose of the email and can make it look less trustworthy.

    If you do include anything beyond the transaction, keep it small, relevant to what the customer just did, and below the main content.

    Getting delivered

    A perfect template is no use in a spam folder. Gmail and Yahoo (since 2024) and Microsoft’s consumer mail (since 2025) all set firm requirements for anyone sending in volume, and authenticated mail does better at every provider.

    • SPF lists the servers allowed to send for your domain.
    • DKIM signs each message so it can’t be altered on the way.
    • DMARC tells inboxes what to do with mail that fails those checks, and sends you reports. Start with a monitoring policy and move to quarantine or reject once you’re confident.
    • Use a sending subdomain for system email, for example mail.example.com, so its reputation is separate from your staff mailboxes and marketing.
    • Use a monitored reply-to address. Customers reply to order and booking emails; a “no-reply” address frustrates them and gets ignored.
    • Keep complaints low. Google asks bulk senders to stay under a 0.3% spam rate. Clean, expected transactional mail helps your whole domain.

    Test before you send

    • Preview in the clients your customers use: Outlook on Windows, Gmail on web and phone, Apple Mail and Outlook on iPhone.
    • Check with images turned off, in dark mode, and at phone width.
    • Click every link, and check that personalised fields fill correctly, including when data is missing.
    • Send test messages to real inboxes at the major providers, and check they arrive in the inbox rather than spam.

    Measure what matters

    Open rates are no longer reliable: Apple’s Mail Privacy Protection loads images automatically, so many emails show as opened when they weren’t. For transactional email, track:

    • Delivery and bounce rates, split into hard bounces (bad addresses to clean up) and soft bounces (temporary problems).
    • Time to inbox, especially for passcodes and password resets, which are useless if they arrive late.
    • Spam complaints.
    • Clicks on the main action, and the outcome you care about, such as appointments confirmed or fewer calls to your contact centre.

    Test one change at a time, such as the subject line or the button wording, and compare the results.

    A starter template

    A minimal responsive transactional template with a preheader, a single-column card, a button that works in Outlook, dark-mode support and a UK company footer. Replace the example details with your own.

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="color-scheme" content="light dark">
    <meta name="supported-color-schemes" content="light dark">
    <title>Your order A1042 is confirmed</title>
    <style>
      @media (max-width: 620px) { .container { width: 100% !important; } .pad { padding: 24px 20px !important; } }
      @media (prefers-color-scheme: dark) {
        .bg { background: #111318 !important; } .card { background: #1f2430 !important; }
        .text { color: #e6e9ef !important; } .muted { color: #9aa3b2 !important; }
      }
    </style>
    </head>
    <body class="bg" style="margin:0; padding:0; background:#f2f4f7;">
    <!-- Preheader: the preview line shown after the subject in most inboxes -->
    <div style="display:none; max-height:0; overflow:hidden;">Arriving Thursday 13 November. Track your parcel any time.</div>
    <table role="presentation" class="bg" width="100%" cellpadding="0" cellspacing="0" style="background:#f2f4f7;">
      <tr><td align="center" style="padding:24px 12px;">
        <table role="presentation" class="container" width="600" cellpadding="0" cellspacing="0" style="width:600px; max-width:600px;">
          <tr><td style="padding:0 0 16px;">
            <img src="https://example.com/logo.png" width="140" height="36" alt="Example Ltd" style="display:block; border:0;">
          </td></tr>
          <tr><td class="card pad" style="background:#ffffff; border-radius:8px; padding:32px 40px;">
            <h1 class="text" style="margin:0 0 12px; font:bold 24px/1.3 Arial, Helvetica, sans-serif; color:#111827;">Your order is confirmed</h1>
            <p class="text" style="margin:0 0 20px; font:16px/1.6 Arial, Helvetica, sans-serif; color:#374151;">Hi Sam, thanks for your order A1042. It will arrive on Thursday 13 November.</p>
            <!-- Button: a padded table cell, so it works in every client including Outlook -->
            <table role="presentation" cellpadding="0" cellspacing="0"><tr>
              <td style="border-radius:6px; background:#0b5cad;">
                <a href="https://example.com/orders/A1042" style="display:inline-block; padding:14px 28px; font:bold 16px Arial, Helvetica, sans-serif; color:#ffffff; text-decoration:none;">Track your order</a>
              </td>
            </tr></table>
            <p class="text" style="margin:24px 0 0; font:14px/1.6 Arial, Helvetica, sans-serif; color:#374151;">Questions? Reply to this email or call 0344 000 0000.</p>
          </td></tr>
          <tr><td class="muted" style="padding:20px 8px; font:12px/1.6 Arial, Helvetica, sans-serif; color:#6b7280;">
            Example Ltd, registered in England and Wales, company number 01234567.<br>
            Registered office: 1 High Street, Anytown, AB1 2CD.<br>
            You're receiving this because you placed an order with us.
          </td></tr>
        </table>
      </td></tr>
    </table>
    </body>
    </html>

    How everymessage helps

    • Delivery you can see. Detailed reporting on every email: submitted, delivered and bounced.
    • Set up properly from the start. We help you put SPF, DKIM and DMARC in place for your sending domain.
    • Templates with personalisation, filled from your data for each customer, in single sends or bulk runs of millions.
    • Journeys across channels. With Workflow, send an email and follow up by SMS or a call if there’s no response, or if the email bounces.
    • Branded landing pages. Our AI branding tool turns any web form or PDF into a page in your own brand, so the link in your email lands somewhere that looks like you.

    Find out more about business email with everymessage.

    Frequently asked questions

    What is a transactional email?

    An automated email sent because of something a person did or something that affects their account: an order confirmation, receipt, password reset, appointment reminder, delivery update or security alert. It gives information they need rather than promoting anything.

    Do transactional emails need consent under UK law?

    Genuine service messages don’t need marketing consent under PECR. But if you add promotional content, the ICO can treat the email as direct marketing, which does need consent or a valid soft opt-in, plus an unsubscribe option.

    What width should an email template be?

    600 to 640 pixels is the safe standard. It fits desktop reading panes, and with a simple media query the layout scales down to full width on phones.

    Do I need SPF, DKIM and DMARC for transactional email?

    Yes. Gmail, Yahoo and Microsoft expect authenticated mail, and without SPF and DKIM aligned to a DMARC policy, important emails such as password resets are much more likely to be filtered or rejected.

    Should transactional emails use a no-reply address?

    It’s better not to. Customers reply to order and booking emails with questions. Use an address that someone reads, or at least tell people clearly how to get help.

    Talk to us about transactional email

    We’ll help you design, authenticate and send emails your customers can rely on.