Sin hacer eso, es posible forzar colores de fondo específicos en la mayoría de los clientes de correo electrónico, las excepciones parecen ser algunos de los clientes de correo electrónico de escritorio de Outlook más antiguos. (Supongo que el modo oscuro no se usa mucho en los clientes de escritorio).
Para los clientes de correo electrónico de iOS (excluyendo Gmail), Discourse ya está haciendo esto si la configuración apply custom styles to digest está habilitada. El problema es que codifica en exceso el color de fondo y no respeta el color “header background” del sitio:
La regla [dm='header'] podría cambiarse a:
"
[dm='header'] {
background: ##{ColorScheme.hex_for_name('header_background')} !important;
}
"
Si tuviera sentido, se podría tomar un enfoque similar para la sección “Since your last visit”:
"
[dm='body_primary'] {
background: #{SiteSetting.email_accent_bg_color} !important;
color: #{SiteSetting.email_accent_fg_color} !important;
}
"
Tenga en cuenta que el atributo dm para los estilos del modo oscuro se agrega al correo electrónico aquí: discourse/lib/email/styles.rb at main · discourse/discourse · GitHub.
Algo así debería funcionar para solucionar el problema en los clientes de correo electrónico de iOS (excluyendo Gmail).
Para el cliente de Gmail de iOS, los colores de fondo se pueden forzar estableciéndolos con un degradado lineal. No parece haber ningún efecto secundario no deseado al establecer un color de fondo de degradado lineal de esta manera para todos los clientes de correo electrónico. Por lo tanto, debería estar bien simplemente agregar un color de fondo de degradado lineal al CSS en línea que se envía a todos los clientes de correo electrónico.
Mi sospecha es que la solución más fácil para tratar con la sección “Since your last visit” para los clientes de correo electrónico que realizan una inversión completa de color sería simplemente dejar que los clientes realicen la inversión, pero asegurarse de que haya un gran contraste entre la configuración de email accent accent bg color y email accent fg color:
Eso debería evitar casos como este (con los valores predeterminados de esas configuraciones):

