How Gov.uk Notify reliably sends text messages to users
I see everyone is focusing on 3rd party providers.<p>Here is another solution: smstools (<a href="https:&#x2F;&#x2F;packages.debian.org&#x2F;buster&#x2F;smstools" rel="nofollow">https:&#x2F;&#x2F;packages.debian.org&#x2F;buster&#x2F;smstools</a>), and a bunch of SMS modems pluggined into a USB hob.  A SMS modem can send SMS in under 5 seconds.  They say 200,000 a day max, so lets say you want to cope with sending 200,000 in 4 hours.<p>That&#x27;s a little under 14 per second, so lets say 15 per second.  You need 75 modems[0] to do that, or about AUD$4,000 worth of modems.  Sorry for the AUD$ - I&#x27;m Australian.  You will also need SIM&#x27;s - or about AUD$1,500 worth.  Don&#x27;t worry about having 75 modems in one spot, the mobile phone network is designed to cope with a stadium of people all sending at the same time.<p>Perhaps you want to shard it for reliability - maybe 5 machines, so add another AUD$5000 for a NUC or similar all with a minimal Debian install + a web server or whatever for whatever delivery mechanism you are going to use to get the SMS&#x27;s to the servers.  That&#x27;s AUD$10.5K total.  Write some glue code - which is a week tops and job done.<p>The one question I&#x27;d be asking is how does that compare to using the cloud.  Third party providers charge around AUD$0.05 per SMS.  They say a minimum of 100,000 SMS&#x27;s per day - or AUD$150K &#x2F; month.  The cost for the non cloud solution is AUD$10.5K for the first month, then $1,500 &#x2F; month after that for the pre-paid SIMS.<p>Downsides: when it breaks (and it will), you will have to diagnose what&#x27;s going on.  That can be hard if the cause is a welding shop starting up next door.  You are also going have to deal with the telco&#x27;s screwing up their SMS infrastructure which seems to happen in Australia every 12 months or so.  But you can fight that to some extent by geographically distributing your NUC&#x27;s and using several different telco&#x27;s servicing each NUC.  That way it becomes more obvious what failed.  Finally, instead of NUC&#x27;s use industrial rated PC [1] to get your reliability up.<p>[0] <a href="https:&#x2F;&#x2F;www.ebay.co.uk&#x2F;itm&#x2F;283828240407" rel="nofollow">https:&#x2F;&#x2F;www.ebay.co.uk&#x2F;itm&#x2F;283828240407</a>  You need the version with an &#x27;S&#x27; (for serial interface) suffix, although you can often just change the firmware.<p>[1] <a href="https:&#x2F;&#x2F;fit-iot.com&#x2F;web&#x2F;products&#x2F;fitlet2&#x2F;" rel="nofollow">https:&#x2F;&#x2F;fit-iot.com&#x2F;web&#x2F;products&#x2F;fitlet2&#x2F;</a>, industrial temperature rated.  So, no stinking air conditioning required.  :D