maborak.com~/products/interspire/spinning-with-content-and-url-rotatorsoftware & infrastructure engineering

All addons

Spinning with Content and URL Rotator

Varies subject, content and sender fields per subscriber, and serves tracking links from rotating remote domains.

Licence and requirements

version:
3.4
works with:
Interspire Email Marketer 6.1.3 to 6.2.1, PHP 7.3 with ionCube
licence:
$500, one payment, lifetime, one domain
includes:
email and live support, free upgrades, free installation

buy licence

Content spinning

Spin tags rotate text per subscriber in any of these Interspire fields: subject, HTML content, text content, from name, from address, reply-to, bounce address, company address, and the default HTML and text footers.

Write the alternatives inside braces, separated by pipes:

Hello dear {Customer|Client}, have a nice {day|night|weekend}

Each subscriber gets one combination:

Hello dear Customer, have a nice night
Hello dear Client, have a nice weekend

Campaign URL rotator

The URL rotator replaces your Interspire domain with remote domains in every link of a campaign, and keeps the tracking data:

  • open tracking, link and image URLs
  • unsubscribe and view-online links
  • Message-ID domains

With update.iem.example.net as the local domain and remote.example.net as the remote one, https://update.iem.example.net/link.php?L=1&N=88 is sent as https://remote.example.net/link.php?L=1&N=88.

Spreading opens and clicks over remote domains keeps one overloaded or failing server from losing your subscribers’ clicks. Remote domains need some server configuration; the setup guide comes with the licence.

Random URL

Pick the random URL option in a campaign and each subscriber gets one of the remote domains assigned to the user.

Rewrites tracking links into short, static-looking paths:

http://domain.net/link.php?M=1&N=88&L=5&F=H  =>  http://domain.net/L1-88-5-H.html
                                             =>  http://domain.net/L1/88/5/H.html
                                             =>  http://domain.net/L1_88_5_H.html
                                             =>  http://domain.net/L1.88.5.H.html

Matching the Mail From domain

Choose Use Mail FROM as URL when sending, and every link uses the same domain as the sender address. Mail-From, Reply-To, Bounce-To, links, Message-ID and headers then all share one domain. With Multiple MTA, each MTA account’s domain is matched separately.

Questions

What is the spin tag format?

{option one|option two|option three}

Can I spin Mail From, Reply-To and Bounce-To?

Yes.

How do I turn on SEO links?

Set ADDON_SPINS_URL_SEO to true in /path/to/iem/admin/addons/spins/config/config.php:

define("ADDON_SPINS_REMOVE_UNSUBSCRIBE_HEADER", false);
define("ADDON_SPINS_URL_USER_SELECTION", true);
/* -1 = random URL, -2 = Mail From domain as URL */
define("ADDON_SPINS_URL_DEFAULT", -2);
define("ADDON_SPINS_URL_SEO", false);
define("ADDON_SPINS_URL_SEO_SEPARATOR", "-");
define("ADDON_SPINS_URL_SEO_TXT_LINK_EXTENSION", ".html"); // can be .txt
define("ADDON_SPINS_URL_SEO_HTML_LINK_EXTENSION", ".html");
define("ADDON_SPINS_URL_ALWAYS_HTTP", true);

Then add the rewrite rules below to /path/to/your/iem/.htaccess. Without them, SEO links return 404.

Which .htaccess rules do SEO links need?
RewriteEngine On
RewriteRule ^L([0-9]+)[\/|\-|_|\.|\|]([0-9]+)[\/|\-|_|\.|\|]([0-9]+)[\/|\-|_|\.|\|]H\.html$ link.php?M=$1&N=$2&L=$3&F=H [QSA,L]
RewriteRule ^L([0-9]+)[\/|\-|_|\.|\|]([0-9]+)[\/|\-|_|\.|\|]([0-9]+)[\/|\-|_|\.|\|]T\.txt$ link.php?M=$1&N=$2&L=$3&F=T [QSA,L]
RewriteRule ^L([0-9]+)[\/|\-|_|\.|\|]([0-9]+)[\/|\-|_|\.|\|]([0-9]+)[\/|\-|_|\.|\|]T\.html$ link.php?M=$1&N=$2&L=$3&F=T [QSA,L]
RewriteRule ^O([0-9]+)[\/|\-|_|\.|\|]([0-9]+)[\/|\-|_|\.|\|]([0-9]+)[\/|\-|_|\.|\|](H|T)\.jpg$ open.php?M=$1&L=$2&N=$3&F=$4&image=.jpg [QSA,L]
RewriteRule ^U([0-9]+)[\/|\-|_|\.|\|]([a-z0-9]{32}+)[\/|\-|_|\.|\|]([0-9]+)[\/|\-|_|\.|\|]([0-9]+)\.html$ unsubscribe.php?M=$1&C=$2&L=$3&N=$4 [QSA,L]
RewriteRule ^U([0-9]+)[\/|\-|_|\.|\|]([0-9]+)[\/|\-|_|\.|\|]([a-z0-9]{32}+)\.html$ unsubscribe.php?&M=$1&L=$2&C=$3 [QSA,L]
RewriteRule ^D([0-9]+)[\/|\-|_|\.|\|]([a-z0-9]{32}+)[\/|\-|_|\.|\|]([0-9]+)[\/|\-|_|\.|\|]([0-9]+)[\/|\-|_|\.|\|]([0-9]+)\.html$ display.php?M=$1&C=$2&S=$3&L=$4&N=$5 [QSA,L]
RewriteRule ^D([0-9]+)[\/|\-|_|\.|\|]([a-z0-9]{32}+)[\/|\-|_|\.|\|]([0-9]+)[\/|\-|_|\.|\|]([0-9]+)[\/|\-|_|\.|\|]([0-9]+)\.html\&rs=(.*)$ display.php?M=$1&C=$2&S=$3&L=$4&N=$5&rs=$6 [QSA,L]
RewriteRule ^F([0-9]+)[\/|\-|_|\.|\|]([a-z0-9]{32}+)[\/|\-|_|\.|\|]([0-9]+)[\/|\-|_|\.|\|]([0-9]+)[\/|\-|_|\.|\|]([0-9]+)[\/|\-|_|\.|\|]([0-9]+)\.html$ sendfriend.php?M=$1&C=$2&L=$3&N=$4&F=$5&i=$6 [QSA,L]

# Salted links
RewriteRule ^[a-zA-Z0-9]{4}L([0-9]+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([0-9]+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([0-9]+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}H\.html$ link.php?M=$1&N=$2&L=$3&F=H [QSA,L]
RewriteRule ^[a-zA-Z0-9]{4}L([0-9]+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([0-9]+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([0-9]+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}T\.txt$ link.php?M=$1&N=$2&L=$3&F=T [QSA,L]
RewriteRule ^[a-zA-Z0-9]{4}L([0-9]+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([0-9]+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([0-9]+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}T\.html$ link.php?M=$1&N=$2&L=$3&F=T [QSA,L]
RewriteRule ^[a-zA-Z0-9]{4}O([0-9]+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([0-9]+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([0-9]+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}(H|T)\.jpg$ open.php?M=$1&L=$2&N=$3&F=$4&image=.jpg [QSA,L]
RewriteRule ^[a-zA-Z0-9]{4}U([0-9]+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([a-z0-9]{32}+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([0-9]+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([0-9]+)\.html$ unsubscribe.php?M=$1&C=$2&L=$3&N=$4 [QSA,L]
RewriteRule ^[a-zA-Z0-9]{4}U([0-9]+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([0-9]+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([a-z0-9]{32}+)\.html$ unsubscribe.php?&M=$1&L=$2&C=$3 [QSA,L]
RewriteRule ^[a-zA-Z0-9]{4}D([0-9]+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([a-z0-9]{32}+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([0-9]+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([0-9]+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([0-9]+)\.html$ display.php?M=$1&C=$2&S=$3&L=$4&N=$5 [QSA,L]
RewriteRule ^[a-zA-Z0-9]{4}D([0-9]+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([a-z0-9]{32}+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([0-9]+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([0-9]+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([0-9]+)\.html\&rs=(.*)$ display.php?M=$1&C=$2&S=$3&L=$4&N=$5&rs=$6 [QSA,L]
RewriteRule ^[a-zA-Z0-9]{4}DC([0-9]+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([a-z0-9]{32}+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([0-9]+)\.html$ display.php?M=$1&C=$2&L=$3 [QSA,L]
RewriteRule ^[a-zA-Z0-9]{4}F([0-9]+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([a-z0-9]{32}+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([0-9]+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([0-9]+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([0-9]+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([0-9]+)\.html$ sendfriend.php?M=$1&C=$2&L=$3&N=$4&F=$5&i=$6 [QSA,L]
RewriteRule ^[a-zA-Z0-9]{4}C(.*?)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([a-z0-9]{32}+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([0-9]+)\.html$ confirm.php?E=$1&C=$2&L=$3 [QSA,L]
RewriteRule ^[a-zA-Z0-9]{4}CF(.*?)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([a-z0-9]{32}+)\.html$ confirm.php?E=$1&C=$2 [QSA,L]
RewriteRule ^form\-signup([0-9]+)\.html$ admin/index.php?Page=Forms&Action=View&id=$1 [QSA,L]

# Autoresponders
RewriteRule ^[a-zA-Z0-9]{4}LA([0-9]+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([0-9]+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([0-9]+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}H\.html$ link.php?M=$1&A=$2&L=$3&F=H [QSA,L]
RewriteRule ^[a-zA-Z0-9]{4}LA([0-9]+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([0-9]+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([0-9]+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}T\.txt$ link.php?M=$1&A=$2&L=$3&F=T [QSA,L]
RewriteRule ^[a-zA-Z0-9]{4}LA([0-9]+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([0-9]+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([0-9]+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}T\.html$ link.php?M=$1&A=$2&L=$3&F=T [QSA,L]
RewriteRule ^[a-zA-Z0-9]{4}OA([0-9]+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([0-9]+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([0-9]+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}(H|T)\.jpg$ open.php?M=$1&L=$2&A=$3&F=$4&image=.jpg [QSA,L]
RewriteRule ^[a-zA-Z0-9]{4}UA([0-9]+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([a-z0-9]{32}+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([0-9]+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([0-9]+)\.html$ unsubscribe.php?M=$1&C=$2&L=$3&A=$4 [QSA,L]
RewriteRule ^[a-zA-Z0-9]{4}UA([0-9]+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([0-9]+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([a-z0-9]{32}+)\.html$ unsubscribe.php?&M=$1&L=$2&C=$3 [QSA,L]
RewriteRule ^[a-zA-Z0-9]{4}DA([0-9]+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([a-z0-9]{32}+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([0-9]+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([0-9]+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([0-9]+)\.html$ display.php?M=$1&C=$2&S=$3&L=$4&A=$5 [QSA,L]
RewriteRule ^[a-zA-Z0-9]{4}DA([0-9]+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([a-z0-9]{32}+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([0-9]+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([0-9]+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([0-9]+)\.html\&rs=(.*)$ display.php?M=$1&C=$2&S=$3&L=$4&A=$5&rs=$6 [QSA,L]
RewriteRule ^[a-zA-Z0-9]{4}FA([0-9]+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([a-z0-9]{32}+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([0-9]+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([0-9]+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([0-9]+)[\/|\-|_|\.|\|][a-zA-Z0-9]{4}([0-9]+)\.html$ sendfriend.php?M=$1&C=$2&L=$3&A=$4&F=$5&i=$6 [QSA,L]
Do remote URLs need their own licence, or the Spinning addon installed?

No to both.

Installation

Every addon installs the same way: see the installation guide. Questions before buying? Open a ticket or email us.

Screenshots

Technologies we work with

  • Argo CD
  • Kubernetes
  • Docker
  • Podman
  • Ansible
  • Jenkins
  • Chef
  • Proxmox VE
  • Google Cloud
  • Linux
  • Red Hat
  • CentOS
  • NGINX
  • Apache
  • Traefik
  • Prometheus
  • Grafana
  • PostgreSQL
  • MySQL
  • MariaDB
  • Redis
  • etcd
  • Qdrant
  • Elasticsearch
  • Logstash
  • Kibana
  • PagerDuty
  • Go
  • Python
  • FastAPI
  • PHP
  • TypeScript
  • React