allt
Företag
datavetenskap
design
utveckling
vår resa
Strategimönster
Tack! Din inlämning har mottagits!
Hoppsan! Något gick fel när du skickade in formuläret.
Tack! Din inlämning har mottagits!
Hoppsan! Något gick fel när du skickade in formuläret.
Ricardo Henriques

28 april 2021

Min läsning

Ruby on Rails - skicka e-post med stil

Har du någonsin varit tvungen att skicka e-post från din Rails-applikation?

Förmodligen kommer ditt svar att vara ja. De flesta av oss har redan vid något tillfälle behandlat smärtan med att skicka HTML-formaterade e-postmeddelanden med Ruby on Rails. Vissa CSS känns redan igen, men vanligtvis slutar vi med att vi skriver vyerna med inline CSS (ouch!) , vilket resulterar i enorma och nästan oläsliga filer.

One does not simply mess with CSS

Vilka är de tillgängliga alternativen för att lösa detta problem? Efter lite forskning hittade jag några Ruby-ädelstenar som släpptes nyligen och som kan hjälpa dig att utföra denna uppgift: Roadie, Premailer-skenor, actionmailer_inline_css och inline_styles_mailer.

Därefter går jag igenom var och en och ger dig en återupptagen förklaring av hur du ställer in och använder dessa ädelstenar.

Roadie

Roadie får automatiskt alla dina CSS infogade med särskild uppmärksamhet på väljare. Det skriver också om alla relativt till absoluta banor och respekterar alla inline-stilar du kan ha. Dessutom lägger den till HTML-skelettet och kan använda partialer.

Användning - lägg till följande i din Gemfile:


Skapa en ny instans av ett Roadie-dokument

Transformera fullständiga dokument med metoden #transform.


Transformera partiella dokument med #transform_partial


Det finns flera alternativ som du kan använda för att konfigurera dokumentinstansen (för mer information kolla deras hemsida):

url_alternativ - dikterar hur absoluta webbadresser ska byggas;
bevara_oinlinable_css - Ställ in på false för att hoppa över CSS som inte kan infogas;
merge_media_query - Ställ in på false för att inte gruppera mediefrågor. Vissa användare kanske föredrar att inte gruppera regler i mediefrågor eftersom det kommer att resultera i att regler blir omordnade.
tillgångsleverantörer - En lista över tillgångsleverantörer som anropas när CSS-filer refereras;
externa tillgångsleverantörer - En lista över tillgångsleverantörer som anropas när absoluta CSS-webbadresser refereras;
före_transformation - En återuppringningskörning innan omvandlingen startar;
efteromvandling - En återuppringningskörning efter att omvandlingen är klar.

Mina tankar om Roadie

Roadie är extremt komplett och med flera användbara alternativ, men enligt min mening kan det vara lite för komplicerat, beroende på vad du behöver eller vill ha. Om du behöver använda tillgångar från ett CDN eller använda cache är denna pärla det bästa alternativet.

Premailer-skenor

Precis som Roadie, Premailer-skenor gör ett utmärkt jobb med att konvertera din CSS till inline stilar. Du behöver inte Rails för att använda eftersom det spelar bra med Sinatra.
Premailer-rails används automatiskt av actionmailer när du lägger till den i din Gemfile.

Användning - lägg till följande i din Gemfile:

Premailer kan konfigureras med följande alternativ, du kan göra detta på initialiseraren (config/initializers/premailer_rails.rb):


Standardkonfigurationer för premailer


För att förhindra att Premailer genererar en textdel från HTML ställer du bara generate_text_part till false.

Om det behövs kan du inaktivera Premailer för ett visst e-postmeddelande, ställa in skip_premailer till true, precis så här:


Mina tankar om Premailer-Rails

Premailer är mycket enkel att använda och konfigurera, om du bara vill skicka utformade e-postmeddelanden utan speciella konfigurationer är denna pärla ett mycket bra alternativ.

Actionmail Inline CSS

Denna pärla liknar Premailer-rails (den är också baserad i Premailer). Du behöver bara lägga till den i din Gemfile och du är redo att gå.

Användning - lägg till följande i din Gemfile:

Med denna pärla kan du också lägga till en anpassad CSS-fil som kommer att infogas av premailer. Du kan åstadkomma detta genom att lägga till din e-postmall:

Mina tankar om Actionmailer Inline CSS

Actionmailer Inline CSS är den enklare lösningen hittills. Du behöver bara lägga till den i Gemfile och du är redo att skicka utformade e-postmeddelanden. Om du inte behöver några speciella konfigurationer är denna pärla ett måste för dig.

Inline Styles Mailer

Precis som Premailer-Rails och Actionmailer Inline CSS använder denna pärla Premailer och fungerar direkt.

Användning - lägg till följande i din Gemfile:


Och lägg sedan bara till önskade mailare inkluderingsraden för InlineStylesMailer:


Om du har en CSS-fil app/assets/stylesheets/foo_mailer* (där asterisken kan vara .css, .css.scss eller.css.sass) kommer den automatiskt att tillämpas på posten med inline_styles pärla.

Om du vill kan du använda en annan CSS-fil


Du kan till och med använda mer än en CSS-fil


Mina tankar om Inline Styles Mailer

Inline Styles Mailer är också en trevlig lösning, det är mycket likt Premailer-Rails och Actionmailer Inline CSS. Lätt att konfigurera och kunna hantera flera CSS-filer. Enligt min mening är det också ett bra val beroende på vad du behöver.

Förpackning

Beroende på vad dina behov är kan du välja mellan 3 pärlor baserade på premailer (Premailer-Rails, Actionmailer Inline CSS och Inline Styles Mailer) eller Roadie.

Roadie har avancerade konfigurationsalternativ (om du behöver speciella konfigurationer för att använda CDN eller för att använda cache) som kan bli användbara men om dina krav inte är så höga kan du välja mellan de andra tre ädelstenarna, alla baserade i premailer och med mycket liknande användning.

För mer information om alternativen som presenteras här, glöm inte att kontrollera varje pärls länk.

Ready for a UX Audit? Book a free call

Hittade den här artikeln användbar? Du kanske gillar dessa också!

blå pil till vänster
Imaginary Cloud-logotyp
blå pil till vänster
Imaginary Cloud-logotyp
blå pil till vänster
Imaginary Cloud-logotyp
blå pil till vänster
Imaginary Cloud-logotyp
blå pil till vänster
Imaginary Cloud-logotyp
blå pil till vänster
Imaginary Cloud-logotyp
blå pil till vänster
Imaginary Cloud-logotyp
blå pil till vänster
Imaginary Cloud-logotyp
blå pil till vänster
Imaginary Cloud-logotyp
blå pil till vänster
Imaginary Cloud-logotyp
Ricardo Henriques
Ricardo Henriques

Utvecklare @Imaginary Moln, dedikerad till att skapa exceptionella mjukvarulösningar, engagerad i innovation och omfamna avancerad teknik.

Läs fler inlägg av denna författare

Människor som läste det här inlägget tyckte också att dessa var intressanta:

pil vänster
pilen till höger
Dropdown caret icon