Setting SPF records
SPF or Sender Policy Framework is a validating system in which each domain says which servers can send emails for it.
This is very important to ensure that the messages sent through Mailee.me are being delivered correctly.
When analyzing the received messages, email providers verify if the server responsible for sending has autorization to send via that email address. If it doesn’t have an authorization, then they reject the message, which in turn may cause it to go to the SPAM folder.
We will learn:
- What is SPF
- How to include Mailee.me in your SPF
Before we start:
To set the SPF you need to have access to the DNS records of the domain. Normally, this is done through the control panel or through the support system of your hosting provider. If you're not sure on how to proceed, contact the technical sector resposible for your website.
If your hosting provider is RedeHost, don’t fear, your SPF for Mailee is already set automatically. We make this setting internally to make the life of our mutual customers easier, allowing them to send without worrying about this first. But even if you use another hosting provider, don’t worry: just follow the steps listed ahead.
What is a domain
The domain is the address of your site on the internet. Google’s domain, for example, is google.com
.
Setting your SPF
Creating a new SPF
First, we need to choose who can send through this SPF. Its base is the following:
v=spf1 a ptr ~all
This is a very simple model that allows all the servers responding by the domain (technically, everyone that has a type A record) to send through it. It indicates that when it receives an email from a server that doesn’t fit this model, it should discard it.
If we want to let Mailee.me, which now doesn’t belong to the domain, to send too, then it should be like this:
v=spf1 a include:_spf.mailee.me ptr ~all
Adding Mailee.me to an existing SPF
Many hosting providers use a lot of email servers, because of their big structures. So, they already have an SPF set up. We don’t want to mess with this, all we want to do is add Mailee.me.
Consider the following SPF:
v=spf1 ip4:000.00.0.0/24 ip4:11.11.1.1/24 mx ~all
in this case, we can add the include:_spf.mailee.me
at any point of the record (after the v=spf1
and before the all
), which looks like this:
v=spf1 include:_spf.mailee.me ip4:000.00.0.0/24 ip4:11.11.1.1/24 mx ~all
If you're not sure about the procedure of adding the address in your domain, we suggest that you contact the people responsible for hosting your site.
Adding in the domain
Manually
Now that we have already built the SPF, we only need to create a DNS record of the type TXT
, using our SPF as value.
How to do it
We have created a list of tutorials and guides from some of the main host providers to teach you how to modify the DNS records or add an SPF on the system:
- Dreamhost (step by step)
- GoDaddy (step by step)
- MediaTemple (step by step)
- Slicehost (step by step)
If your host provider is not listed here, then contact them and ask for instructions on how to proceed with the editing. Remember, our team is also here st your disposal to help you! In case you need anything, just drop us a line.
Understanding the SPF
This is the most advanced part, for those interested in understanding better how the SPF works.
These are parts of the SPF. The only requirement is informing which is the version with the v=spf1
. Any of the mechanisms can be combined with any of the qualifiers.
If your still want to go further on this subject, head over to the documentation by Wikipedia.
Mechanisms
A
Everyone having a type A record can sendALL
Always allowsIP4
Allows that IP to sendIP6
Allows that IPv6 to sendMX
If the domain name has an MX record resolving to the sender’s address, it will matchPTR
If the domain name (PTR record) for the client’s address is in the given domain and that domain name resolves to the client’s address (forward-confirmed reverse DNS), match.INCLUDE
If the included (a misnomer) policy passes the test this mechanism matches
Qualifiers
*+
Always allows, can be omitted. +ALL equals ALL
*?
Neutro
*~
Softfail
*-
Fail, message should be rejected