Design a scalable email service that can handle millions of users and billions of emails. Focus on the overall architecture for sending, receiving, and storing emails efficiently. Address challenges like spam filtering, efficient storage and retrieval of emails, implementing search functionality, and ensuring high availability and fault tolerance.