I might be wrong, and there can be better suggestions to this. But as per my understanding as soon as you get the request from client, you store this data in a queue(table/or some memory variable).
You should have another servlet that runs in background in a different
thread and executes at an interval of every 10 seconds. What this background servlet will do is, it will check what date I have in the queue. If the condition is satisfied it sends the mail and deletes that record from that queue.