In my answer I guessed that both exampleshop.com and www.exampleshop.com had the same IP, although that could not be true.
Let me show you an example. Imagine you have the domain exampleshop.com which uses Gmail's email servers, but which also sends email from the web server. The DNS registers could be something like this:
exampleshop.com A -> 192.168.1.1
www.exampleshop.com A -> 192.168.1.2
exampleshop.com MX -> gmail's servers
exampleshop.com MX -> another server (optional)
If we want to allow both gmail's servers and www.exampleshop.com to send email from our domain (exampleshop.com), the SPF could be any of these ones:
v=spf1 include:_spf.google.com ip4:192.168.1.2 ~all
v=spf1 include:_spf.google.com a:www.exampleshop.com ~all
If both exampleshop.com and www.exampleshop.com have the same IP (for example 192.168.1.1), then you could write the SPF like this:
v=spf1 include:_spf.google.com a ~all
The "a" in the line above says that the IP of the domain of the SPF (exampleshop.com = 192.168.1.1) is allowed to send emails for that domain. If, some time later, you change the IP of exampleshop.com you won't have to edit the SPF because the receiver of the emails will resolve the new IP of exampleshop.com.
Sure, you can also add both the "a" and the "ip4" options to the SPF:
v=spf1 include:_spf.google.com ip4:192.168.1.2 a ~all
v=spf1 include:_spf.google.com a:www.exampleshop.com a ~all
That SPF allows Gmail's server, the server with the IP 192.168.1.2 and the IP of the domain (exampleshop.com) to send email using @exampleshop.com.
Finally, you can also add the MX (mail exchangers) option to the SPF:
v=spf1 include:_spf.google.com ip4:192.168.1.2 a mx ~all
The MX option tells the receivers of emails from @exampleshop.com that every server which is declared in the DNS configuration is allowed to send that emails.
The MX and A options in the SPF are like "alias" which depend on the configuration of your DNS server.
There are lot's of ways to write the SPF. Check this: https://dmarcian.com/spf-syntax-table/
From:
address of emails sent from the server, which may or may not be the same as the website domain. That domain needs to have a SPF record in the DNS that allows the IP address of the web server.include
? It's your use ofinclude
that implies that there should be an SPF record over there....