You can always search for contacts (e.g. contacts with certain tags) and then send an email / mass mailing to all the contacts via CiviMail. Technically CiviCRM would then create a "hidden group" to do that.
However, it is usually preferable to use groups to manage your mailing recipients in order to ensure that contacts can properly unsubscribe ...
I have a workaround if you make sure that the URL is not tagged as such then if comes through in the email ok and unchanged, this does not solve the issue if you want to mask the url and provide text to describe the link
I notice this: https://github.com/civicrm/civicrm-core/pull/17312 added some nice new callbacks, but since it didn't actually remove the old ones, I suspect this is only affecting Drupal 8 installs that don't have the extern/ directory working.
The key is that these emails are going out with the following at the end of the html:
For current documentation, see https://docs.civicrm.org/sysadmin/en/latest/setup/civimail/
How are you sending your mails out? If you use a service like Mailgun or SparkPost then there are extensions to handle the bounces without needing to configure your own bounce inbox processing.