Improve email delivery: The importance of SPF

In this blog post, we’ll take a look at SPF and why its important in ensuring email from your MIDAS room booking system is reliably delivered.

SPF stands for “Sender Policy Framework” and its purpose is to prevent unauthorized people from forging your e-mail address and pretending to be you. SPF has been around for a number of years now, but in recent times has been growing in popularity as more and more websites and email providers start enforcing it.

As our MIDAS web based room booking systems are capable of sending email on your behalf, it’s important to understand how SPF works and how it can help solve email delivery issues in MIDAS.

Take for instance the following example Scenario:

  • Your MIDAS system is running on domain “A” (i.e. your-organization.mid.as)
  • Your MIDAS system is configured to send emails to appear as though they are sent from an email address belonging to domain “B” (i.e. your-organization.com)
  • An email is sent from your MIDAS system to a recipient with an email address on domain C

In the above example, the receiving mail server for domain C queries the SPF record on domain B to check whether domain A is authorized to send mail on behalf of domain B. If it isn’t the email is rejected.

An SPF record is simply a TXT record in a given domain’s DNS, and a simple example may look similar to this:

v=spf1 +a +mx ~all

The format of an SPF record begins with a version number; the current SPF version is “v = spf1”.
Following the version string, any number of expressions may be included which are evaluated in the order they appear. These consist of an optional “qualifier” (+, -, ~, or ?) and a “mechanism” (all, a, mx, ip4, or include). The first mechanism that is matched in the SPF record determines the result of the entire valuation of the SPF record.

Qualifiers:

QualifierResultDescription
+PassDefines an authorized sender
(If no qualifier is specified, + is assumed)
FailDefines an unauthorized sender
~SoftFailDefines an unauthorized sender
(however it may not notify the sender that their email failed)
?NeutralDefines a sender whose legitimacy isn’t determined
(In such instances, sending is allowed)

Mechanisms:

MechanismApplies if…
allalways
aAn A (or AAAA) record of the polled (or explicitly specified) domain contains the IP address of the sender
mxAn A (or AAAA) record of the polled (or explicitly specified) domain contains the IP address of the sender
ip4The specified IPv4 address is the IP address of the sender or of the specified IPv4 subnet which contains it
includeAn additional SPF request for the domain specified in the include statement contains the IP address of the sender

SPF records cannot be over 255 characters in length and cannot include more than ten “include” statements.

Example SPF record:

v=spf1 +a +ip4:1.2.3.4 -ip4:5.6.7.8 +include:somedomain.com ~all

In the above example:

  1. Email delivery will be allowed if it originated from the same domain it was sent (+a).
  2. Email delivery will also be allowed if it originated from the specific IP address 1.2.3.4
  3. Email delivery will be rejected if it originated from the IP address 5.6.7.8.
  4. Email delivery will be allowed if it matches the rules defined in the SPF record on “somedomain.com”
  5. All other email sources will be softly rejected (~all)

Bringing it back to MIDAS…

If you run a cloud-hosted MIDAS system at the domain “your-organization.mid.as”, your organization’s own website is “your-organization.com”, and you wish to allow your MIDAS system to send email on behalf of addresses @your-organization.com, then you should setup/modify an SPF record on your-organization.com.

This SPF record would authorize your hosted MIDAS system to send email on behalf of your organization. Failing to correctly set an SPF record for your domain may mean that emails sent from your MIDAS system may not reach recipients.

For our hosted customers, you can simply include “include:_spf.midas.network” in your-organization.com’s SPF record. Your new/modified SPF record may then look similar to this:

v=spf1 +a +mx include:_spf.midas.network ~all

In the above example:

  1. Email delivery will be allowed if it originated from the same domain it was sent (+a).
  2. Email delivery will be allowed if it originated from the same mail server as it was sent (+mx)
  3. Email delivery will be allowed if it matches the rules defined in the SPF record on “_spf.midas.network”. This will allow your hosted MIDAS system to become an authorized sender of email for your domain.
  4. All other email sources will be softly rejected (~all)

Remember, SPF records are simply TXT records within your domain’s DNS. If you’re not sure how to set/modify DNS records for your own domain, you’ll need to defer to the domain’s administrator, registrar, or hosting provider who should be able to assist in making the necessary adjustments to your domain’s DNS record

Further reading from our Knowledgebase:.


Custom Client Fields

Things are hotting up here in Europe – and we don’t mean Brexit! A heatwave is currently engulfing parts of the continent with temperatures hitting a whopping 40°C in Paris. Across the Channel here in the UK the temperature is far more bearable, and so we’ve been busy working away on development on the next release of our leading web based room and resource scheduling system, MIDAS.

We’re excited to announce that the forthcoming v4.22 update will include the often requested feature of “custom client fields”, including the ability for self-hosted MIDAS customers to attach documents (i.e. insurance certificates, contracts, etc) to client records.

Similar to the “custom booking fields” feature first introduced way back in 2010, which allows administrators to add additional booking fields to their MIDAS system on top of the standard booking fields, the new custom client fields feature will provide similar functionality to client records in your MIDAS database.

Prior to v4.22, the standard client fields in MIDAS were fixed and allowed you to capture the following items of data for each of your clients/customers:

  • Client name
  • Organization
  • E-mail address (or addresses)
  • Postal address
  • Telephone number
  • Fax number (since deprecated as a ‘standard’ field in MIDAS v4.35)
  • Mobile/Cell number
  • Notes

The introduction of custom client fields gives you even more flexibility! Now you’ll be able to add additional fields to capture other client information that you wish to collect, for example you could add a “Salutation” list field (Mr, Mrs, Ms, Miss, Rev, Dr, etc), or a file upload field to capture an insurance document from your clients..

A custom “Salutation” client field in MIDAS v4.22
A custom “Salutation” client field in MIDAS v4.22
A custom "Insurance Document" upload client field in MIDAS v4.22
A custom “Insurance Document” upload client field in MIDAS v4.22

The types of custom client fields that may be added are the same as those available for custom booking fields, namely:

  • Checkbox – A “tick box” field
  • File – (self-hosted editions only) Allows uploading/attaching of files and documents to client records
  • List – A drop-down list of pre-defined items
  • Number – A field that will only accept numerical input
  • Range – A “slider” control allowing selection of a numeric value within a defined range
  • Text – A single-line text field
  • Text Area – A multi-line text field
  • URL – A navigable web link to an external resource

Both custom booking and custom client fields may be managed via MIDAS Admin Options → Manage MIDAS → Fields

Custom client fields in MIDAS v4.22
Custom Client Fields in MIDAS v4.22

From this screen you’ll also be able to control which client fields (both standard and custom) should be included on printouts, in search results, and on public booking/request screens. You’ll also be able to re-order client fields as well as selectively hide them from individual users too!


We feel the need… the need for speed!

We’re committed to regularly bringing exciting new and improved features to our easy-to-use room booking system, MIDAS. We also work hard behind the scenes to constantly improve the overall speed and performance of both our software and infrastructure.

In this article, we’ll take a closer look at some of the performance improvements we’ve introduced over the past year. We’ll also look at some of the performance improvements you can look forward to in the very near future!

Caching and CDN

CDN stands for “Content Delivery Network“. It is a means whereby web content – such as an image – is stored on multiple servers around the world. When the image is requested by a visitor’s web browser, rather than the image being served from a single origin server (which may reside in another country), it is instead served by the nearest/fastest server in the CDN network. The result is significantly improved loading times for content served via a CDN.

Back in May last year (2018) we introduced CDN support for static content for all our cloud-hosted MIDAS customers.

As a result, we quickly saw performance improvements and reduction in load times of customer’s hosted MIDAS systems by up to 67%! You can read more about this in this blog post.

Improved DNS

DNS stands for “Domain Name System”, and can be considered as a “phone book” for the internet. When you enter a website in your browser’s address bar, a DNS system is used to look up the corresponding server on the internet that the URL you’ve entered resolves to, allowing you to then access the site.

This week, we’ve migrated our DNS to a distributed/cloud-based system. Previously, our DNS was provided by our own web servers. So for example, if you wanted to access our blog (blog.mid.as) the DNS system would first have to make contact with mid.as to find out the location of blog.mid.as.

With our new distributed/cloud-based DNS system, DNS is now handled in a similar way to the CDN system outlined above. That is to say that when you enter a URL/sub-domain for any part of our site, the DNS is resolved on a server geographically close to you.

As a result, we’re seeing DNS lookup times for our site up to 5 times faster than previously!

The above images (from dnsperf.com) show how quickly the mid.as domain used to resolve from various locations around the world (left image) and again now (right image).

XML vs JSON

What and what?! XML stands for eXtensible Markup Language. JSON stands for JavaScript Object Notation. Both are methods for storing and transporting data, with JSON being the newer of these two methods.

As we’ve been developing MIDAS for well over a decade now, XML has been the format we’ve used for the main settings file within our software for the majority of that time. This is because JSON wasn’t really around a decade ago!. The downside of using XML – particularly when used in conjunction with Perl (the language which MIDAS is written in) – is that it tends to be a little slow and clunky.

That’s why starting with our next software update, v4.22, we’ll be dropping the main XML settings file in favor of a JSON settings file instead. In our own benchmark testing, this simple change has resulted in improved load times of ~10ms per request. This may not sound a lot, but is actually quite noticeable.

As a result of this upcoming improvement, self-hosted customers will need to ensure that the JSON Perl module is installed and available on their MIDAS system in order to be able to update to v4.22.

Instructions of how to do this may be found in our How to install Perl modules KB article. Cloud-hosted customers don’t need to worry about this, as we’ve taken care of it!


MIDAS v4.21 Out Now!

We enjoy bringing you new and exciting features to our MIDAS room booking and resource scheduling software. Our latest update v4.21 which was released a few days ago is no exception!

For this latest update, we’ve been busy “under the hood”. We’ve optimized some of the back-end database structure and queries to make them even more efficient both in terms of speed and memory usage. We’ve also added a host of new invoicing features. New features include the introduction of “Deposit” invoices. We’ve also re-worked the bulk venue modification feature too to make it more user-friendly.

Here’s What’s New & Improved in v4.21:

How To Get MIDAS v4.21…

New To MIDAS?

We are committed to fair and accessible pricing for all organizations regardless of size. We’re totally upfront and transparent about our pricing structure. You can purchase MIDAS v4.21 securely through our website and be up and running in no time!

“Self Hosted” Customers:

Self-Hosted customers with ongoing Annual Support Subscriptions will be able to update to v4.21 in the coming days. It only takes a couple of clicks. Simply log in to your MIDAS system and go to MIDAS Admin Options → Manage MIDAS → Update

“Cloud Hosted” Customers:

Cloud-Hosted customers don’t need to do anything! – All our active Cloud-Hosted MIDAS customers have now been automatically updated to this latest version of MIDAS!

Thank you for your continued support of our software, and we hope you’ll enjoy the new features and improvements in MIDAS v4.21!

If you have any questions or feedback, we’d love to hear from you!