kontakta oss

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.

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 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:
Transformera fullständiga dokument med metoden #transform.
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.
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.
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):
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-RailsPremailer ä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.
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:
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.
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.
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.
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.

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

Utvecklare @Imaginary Moln, dedikerad till att skapa exceptionella mjukvarulösningar, engagerad i innovation och omfamna avancerad teknik.
Människor som läste det här inlägget tyckte också att dessa var intressanta: