I'm told that it's best practice to have a secondary MX record pointing to a secondary mail server in case the main one fails.
If the main mail server fails, how will the users on the main server get their email? Do I need to mirror all user accounts on the secondary server?
I'm new to mail servers, so I'm not sure if my question makes sense.
Answer: it depends. Most secondary server setups just hold the mail until the primary comes back up, at which point the mail is either delivered or bounced.
If you have either a separate user database that both servers have access to (eg LDAP) or you regularly clone your account list between the servers, then you could probably configure a mailserver to act as a secondary (forwarding the mail to the primary server when it's back up) and only accept mail for valid addresses.
This depends entirely on your mail server architecture. In an Exchange setup for example, you can have multiple edge/hub transports, multiple CASes, and mirrored mail databases using DAGs.