I have a system that sends different types of messages (HTTP, SMTP, POP, IMAP, and regular TCP) to different systems, and I need to queue all of those messages in my system, in case of other systems in-availability.
I'm a bit new to the message queueing concept. so I don't know the best python library that I shall go for.
Is Django-celery (and the underling components - RabbitMQ, MySql, django, apache) is the best choice for me? Will this library cover all my needs?
Try the Pika client or the Kombu client.  Celery is a whole framework for job queues, which you may not need - but it's worth taking a look if you want to understand a queue use case.
Queueing HTTP, emails, and TCP messages in Python