You may be going in a direction that will actually make things more difficult. You can very easily set up a smart campaign that would send an email to whomever you chose, based on some action from your web portal. What is happening that causes the need to send the email? Is the end user submitting a form, clicking a link, simply visiting a webpage? Any of those actions can trigger Marketo to send an email for you.
All you need to do is create a default program in Marketo. From there, add in a smart campaign with a smart list that listens for your desired action (fills out form, clicks link, visits webpage) and then use the send email flow step to send your email. Of course, you'll need to build the email before you can send it.
Create a Program -Create a Program - Marketo Docs - Product Docs
Create a Smart Campaign - Create a New Smart Campaign - Marketo Docs - Product Docs
Create an Email - Create an Email Program - Marketo Docs - Product Docs
Send Email Flow Step - Send Email - Marketo Docs - Product Docs
you will need to embed a Marketo Form on the page or use the API to pass a custom form info to Marketo.
I don't need to create any lead
This is fundamentally impossible. Even if the lead is deleted directly after sending (which is a really bad idea!) there must be a lead in your database at the time the email is sent.
Like Chris said, if you have a web (Munchkin) session that's already associated with a lead, and/or you have the lead fill out a form, you can use a simple Filled Out Form trigger to send an email. Even if you have an existing form, you can do a background Marketo form post to mirror that activity in Marketo.
What is the easiest way to do itby using the API only?
P.S. Using the REST API (if that's what you're implying by "API") for this is far more complex, dangerous, and resource-wasteful than using the Forms API to do a background post.