Cómo arreglar undefined method address_list en Rails 6.x y 7.x

El problema

El otro día me encontré con un problema donde vi este error:

# mail.address_list
NoMethodError: undefined method `address_list'

El error venía de esta línea: https://github.com/rails/rails/blob/6-1-stable/actionmailbox/lib/action_mailbox/mail_ext/addresses.rb#L5-L7.

Como suelo hacer a menudo, reviso periódicamente las dependencias de gemas en una aplicación y las actualizo para mantener las cosas, bueno… actualizadas.

En esta situación, actualicé la gema mail a la versión 2.8.x. Parece que esta fue la causa raíz del problema.

Resulta que cuando se lanzó la gema mail, había roto Rails: https://github.com/rails/rails/pull/46643. El address_list ya no era parte de la gema mail recién lanzada.

La solución

Pareció que otros también estaban teniendo el mismo problema, y una solución fue retroportada a Rails 6-1 y 7-0 stable:

Al momento de escribir esto, estas versiones aún no han sido lanzadas. Por lo tanto, una solución temporal puede ser degradar mail de 2.8.0 a 2.7.x.

Alternativamente, uno podría usar 6-1 o 7-0 stable y referenciar esas versiones en el Gemfile. Se espera que esta corrección esté disponible en Rails 6.1.8 y 7.0.5 cuando sean lanzados.