In civicrm.settings.php there's some settings to log it all to a file. See https://docs.civicrm.org/dev/en/latest/tools/debugging/#changing-file-based-settings
If it's your current MTA, Postfix has an option to BCC all emails to an address: always_bcc
More complex solutions can be implemented.
I often use 3rd party mailing services (namely mailgun, mandrill but have used others too). You can pay these services a lot to keep all your mail for a while, but the sheer amount of it will always be an issue if you're looking to capture every single mail that goes out.
I have implemented an exim4 configuration that keeps a copy in a local Maildir at ...
From an admin (non-sysadmin) perspective, the extension invoicehelper has options to automatically cc/bcc specific emails, notably for offline membership/contribution emails.
It does not handle the simple "Send Email" form, however. And one thing I get asked often, is that when viewing emails sent (activities), it should display who was CC'ed/BCC'ed. For ...
Another option you may want to consider is installing CiviProxy. You set it up somewhere on the public Internet (I imagine a free hosting account would suffice), whitelist its IP in your firewall, and it has a very limited ability to talk to CiviCRM. But the CiviProxy extension will rewrite your URL tracking to go to the proxy - and the proxy knows how to ...