Currently it seems to me that you’re relying solely on the publication to select what the user sees on the page. In other words, it seems that you’re doing a Collection.find({query}) in the publication and then just doing a Collection.find({}) on the client inside React to display everything contained in Minimongo. If that’s the case, then I’d advise against that.
In most cases you should have two queries running side by side - one server side in the publication controlling what documents the user has access to and one client side controlling exactly what is displayed on the page. The former, of course, restricts the latter, but this should not be relied on directly for displaying the data. In general it is a good idea to assume that the local minimongo cache does contain data other than what you need currently (subscriptions from other components, previous routes, probably some caching related optimizations as well).
Here, if you want to have the ‘all’ be the default option and the data sets are of reasonable size, then in your publication publish the necessary data for ‘all’ and then when the user goes through ‘sent’, ‘failed’, ‘opened’ or ‘all’ just change the client side query to control what is displayed. That way you’re not hammering the server each time a user goes through the selections and, as an added bonus, the user does not have to wait for a response from the server to see the changes. If the data sets are large, then you’d need to publish based on the selection (as you have currently), but the client side query should then reflect the selection as well.