I wonder how a completed form on a website is sent to the recipient?
So far I have used external services (for example https://formspree.io/) that forward the completed form to me, but I have to pay for this service and I wonder how I can have the completed form sent to me without an external service?
In my understanding, I would have to have a server that is available 24/7 and that sends a message directly to another server when a message is received, e.g. my email service provider, is that correct? Does that have anything to do with API connections?
Not that I care in a judgmental or suspicious way, but is this for a commercial (prod) scenario, or an experimental/hobby (dev) scenario?
Without knowing your exact use-case(s), it sounds like Postman might be able to help you… if the scenario/env is ‘dev’ based.
What I have used Postman in the past for, that does not sound too far off what you are concerned with, is giving it pieces of code, with URLs, sometimes just localhost:$PORT, and when you have it send/post/get/delete/etc., you can have it display precisely what data/cookies/properties/etc were sent, and the response it got.
I did a lot of work with APIs and auths/oAuth2 in the past, and Postman was invaluable in checking how tokens were going to be passed, what was going to be in sent/received cookies, etc. One of my favorite tools was being able to convert a working cURL statement to a popular JS library (for example). But network snippet conversion is available in a lot of ways, for free, through Postman.
My main concern is to have a basic understanding about what happens when a form is sent, step by step (for example: form is send to server via API/ server sends form to email server / email server sends notification to email client / email arrives ).
I am currently developing a small project (react.js) with my own contact form, which I have to forward to my email address and was wondering why I actually have to pay for the service. Maybe I can also pass on the form via my own server, for example with Node.js and Heroku?
Generally speaking, for testing/dev purposes, you can fake a lot of testing and experiments for free.
As soon as you want any kind of external permanency/ ‘cloud’/server functionality - typically only required in a production env - you are looking at paying someone for space/hosting/etc.
It sounds to me like Postman can definitely be an asset to you, but you might just need a good rest and a cup of coffee to dig into it. You can tell it ‘form data’, ‘xml’, ‘json’, and more. It’s very good for practicing with CRUD and HTML requests in general.