New Color logo rsph clear

Rifle-Shot Celebrates 20th Anniversary

From its beginnings as an off-shoot from Dimension Data and Futuristix, and driven by wanting to better serve the manufacturing, mining and metals, oil and gas, and energy sectors with its deep industry knowledge and passion for excellence, Rifle-Shot is proud to have achieved the milestone of 20 years of success in business. During this time our partners, suppliers and clients have actively sought us out based on our decades-long relationships with key industry players, and the results we have delivered in the long term.

We would like to thank each and every one of our partners, existing clients and prospective clients that have journeyed with us to get where we are today, and we look forward to continuing our partnership with you, and expanding our reach over the next twenty years!

With heartfelt thanks,

Ian Huntly, Chief Executive Officer
Guy Imbert, Chief Operating
Dilley Naidoo, Chief Vision Officer

Stay up to date.

Sign up our newsletter for latest article and news.
document.addEventListener("DOMContentLoaded", function () { // 1. Select all MetForm elements on the page const forms = document.querySelectorAll(".metform-form-content"); forms.forEach(function (form) { form.addEventListener("submit", function (event) { // 2. Find the email input field inside this specific form const emailInput = form.querySelector('input[type="email"]'); if (!emailInput) return; const emailValue = emailInput.value.trim().toLowerCase(); // 3. Define the list of forbidden free email domains const blockedDomains = ["gmail.com", "hotmail.com", "outlook.com", "live.com", "yahoo.com"]; // 4. Extract the domain from the entered email address const emailParts = emailValue.split("@"); if (emailParts.length !== 2) return; const emailDomain = emailParts[1]; // RESTORED: Targets the domain string after the @ // 5. Check if the domain is in our blocked list if (blockedDomains.includes(emailDomain)) { // Prevent the form from submitting to MetForm's servers event.preventDefault(); event.stopPropagation(); // 6. Handle error messaging removeExistingError(form); showErrorMessage(emailInput, "Please use a business email address. Free email providers (Gmail, Hotmail, etc.) are not allowed."); } else { removeExistingError(form); } }, true); // Use capturing phase to intercept MetForm's submit handler early }); // Helper function to inject a clean error message below the input field function showErrorMessage(inputElement, message) { inputElement.style.borderColor = "#ff4d4d"; const errorDiv = document.createElement("div"); errorDiv.className = "metform-custom-error"; errorDiv.innerText = message; errorDiv.style.color = "#ff4d4d"; errorDiv.style.fontSize = "13px"; errorDiv.style.marginTop = "5px"; errorDiv.style.fontWeight = "500"; inputElement.parentNode.appendChild(errorDiv); } // Helper function to clear previous error messages on retry function removeExistingError(formElement) { const existingError = formElement.querySelector(".metform-custom-error"); if (existingError) { existingError.remove(); } const emailInput = formElement.querySelector('input[type="email"]'); if (emailInput) { emailInput.style.borderColor = ""; } } });