Senza fare ciò, è possibile forzare colori di sfondo specifici sulla maggior parte dei client di posta elettronica, le eccezioni sembrano essere alcuni dei vecchi client di posta elettronica desktop di Outlook. (Suppongo che la modalità scura non venga utilizzata molto sui client desktop.)
Per i client di posta elettronica iOS (escluso Gmail), Discourse lo sta già facendo se l’impostazione apply custom styles to digest è abilitata. Il problema è che sta codificando in modo fisso il colore di sfondo e non rispetta il colore “header background” del sito:
La regola [dm='header'] potrebbe essere modificata in:
"
[dm='header'] {
background: ##{ColorScheme.hex_for_name('header_background')} !important;
}
"
Se avesse senso, un approccio simile potrebbe essere adottato per la sezione “Since your last visit”:
"
[dm='body_primary'] {
background: #{SiteSetting.email_accent_bg_color} !important;
color: #{SiteSetting.email_accent_fg_color} !important;
}
"
Si noti che l’attributo dm per gli stili della modalità scura viene aggiunto all’email qui: discourse/lib/email/styles.rb at main · discourse/discourse · GitHub.
Qualcosa del genere dovrebbe funzionare per risolvere il problema sui client di posta elettronica iOS (escluso Gmail).
Per il client Gmail di iOS, i colori di sfondo possono essere forzati impostandoli con una sfumatura lineare. Non sembrano esserci effetti collaterali indesiderati nell’impostare un colore di sfondo sfumato lineare in questo modo per tutti i client di posta elettronica. Quindi dovrebbe andare bene aggiungere semplicemente un colore di sfondo sfumato lineare all’CSS inline inviato a tutti i client di posta elettronica.
Il mio sospetto è che la soluzione più semplice per gestire la sezione “Since your last visit” per i client di posta elettronica che eseguono un’inversione completa dei colori sia semplicemente lasciare che i client eseguano l’inversione, ma assicurarsi che ci sia un buon contrasto tra le impostazioni email accent accent bg color e email accent fg color:
Ciò dovrebbe prevenire casi come questo (con i valori predefiniti di tali impostazioni):

