VoodooSMS and some PowerShell

11 Oct

I recently setup an account with VoodooSMS to allow some bulk SMS’s to be sent out.

I didn’t explore that many other companies that offer such a service as I came across this one quite early on and was very impressed.

In short you can send SMS’s via the web portal, schedule them to go at a specific time if you like and customise the sender ID that appears on the recipients handset.

A little caveat here, you can only have alphabetical characters in this Sender ID, spaces are allowed but not all networks honour this space character and so it may appear differently when it reached the recipient, oh and O2 don’t allow a sender ID under 4 characters in length. Oh yes, and there are of course some senders ID’s that they won’t allow you to use for obvious reasons, but it’s safe to assume ‘Police’ and ‘FBI’ are probably on this blocked list. I managed to block my account by using the Sender ID ‘Pineapple’, most likely as it matched on ‘Apple’.

Unfortunately, your account has been locked. Please contact your account manager to get this resolved. Thank you

Anyway, you can also register your email address to allow to you send an SMS directly via email which is pretty handy.

Most of my monitoring currently has push notifications set via various apps but I’m sure a good old fashioned SMS will come in handy at some point and so I wrote a quick bit of PowerShell to use the API for this too:

$uid = "username_api"
$pass = "password"
$dest = "4407777000000"
$dest = "4407777000000"
$orig = "DaveH"
$msg = "Message"
$format = "JSON"

$bannedwords = "police", "lottery", "voodoo", "apple"
$banned = $false
$bannedword = ""

foreach($word in $bannedwords){

    if($orig.ToLower() -like "*$word*"){
        $banned = $true
        $bannedword = $word


    write-host "Banned Sender ID Error: '$bannedword'"


    $url = "https://www.voodoosms.com/vapi/server/sendSMS?uid=$uid&pass=$pass&dest=$dest&orig=$orig&msg=$msg&format=$format"
    $response = Invoke-WebRequest -Uri $url -Method Get
    write-host $response.StatusCode
    write-host $response.StatusDescription
    write-host $response.Content