You can check the return value of OrderSend() function and if it is true, you call the SendMail() Function to send out the email.
The same can be done with the OrderClose() function, but not if the SL/TP levels are hit in that case you did not use OrderClose() function,
But in that case you can still detect those closed orders by monitoring OrdersTotal() function and whenever something changes still send out the message.
MT4 platform have an option for you to input your email server.
It should send you an email whenever a trade is made on your account.
You don't need to make an EA to send you email.
What do you mean?
You check the return value of OrderSend() function if it was successful it returns the ticket number.