Mails being sent to single recipient works perfectly fine.
My emails are being delayed and missed out some times when the emails are sent to the batch say all enrolled students in the class.
For e.g yesterday I posted an Announcement in a course,for this the email notification was received by only 2 students out of 20,I repeated the same task again some random 2 people only get email notifications,rest didn't receive.
So,I just want to know how Moodle sent out the emails,Does it have any Email Queue to look after to know how many people are still left to recieve the emails.
This is pretty urgent because we have sent out user creation Emails to a large number of students and some people are saying they haven't received any emails,So we would like to figure it out how many students are yet to receive the emails.
Any kind of help on this would be highly appreciated.
Moodle hands off everything to whatever email processing software you have configured. There plenty of good email processing systems out there and so Moodle concentrates on the Learning stuff and leaves email to email software. You can take that as a no to your main question, but you might want to look into what is happening in your cron setup.
What version of Moodle are you using?
I seem to remember on an older Moodle version I previously had issues when there were large numbers of forum posts to go out and it hadn't completed before cron was trying to run again (See Marcus' hint on checking your cron tasks). If I recall correctly, my quick fix back at that time was simply to extend the period between cron jobs running to give it chance to clear properly.
I think that's been resolved on newer moodles with the scheduled tasks system though.