I think you are misunderstanding how CGI works. HTML is just a user interface for the web. When a user has an HTML form, the browser takes that information and creates a POST request from the form data.
You don't need an HTML form to send a post. You could generate an appropriate one yourself. One quick easy way to do it would be to have the sender code use LWP to make the POST request and use a regular CGI to process it.