2016-04-21 16 views
5

Wysyłam powiadomienia e-mail do moich użytkowników z mojej aplikacji, ale obecnie wysyłam je tylko jako tekst. Chciałbym wysłać e-maile w formacie HTML, które są stylizowane.Wysyłanie wiadomości e-mail w formacie HTML z Node.JS przy użyciu MailGun

Obecnie Próbowałem to:

var data = { 
       from: 'my app', 
       to: user.email, 
       subject: 'Welcome', 
       html: '<div style="width: 500px; height: 400px: background: #ebebeb; color: #ddd"><p>Hi + "user.firstName" + \n ,this email is to inform you that has added their bio to the knowledge Base \n</p></div>' 
      }; 

Kompilacja powyższy kod nie działa, to nie lubi style Włożyłem w Stworzyłem osobny plik HTML w moim lokalnym katalogu dla. każdy typ wiadomości e-mail chcę wysłać i chciałbym móc dołączyć ten plik HTML do mojego e-maila.

coś takiego:

var data = { 
       from: 'my app', 
       to: user.email, 
       subject: 'Welcome', 
       html: welcomeToSiteEmail.html 
      }; 

Czy powyższe możliwe? Każda pomoc zostanie bardzo doceniona.

+0

ja też wpadłem na to i moduł 'mailgun-js' nie obsługuje bardzo ważną właściwość' template' (Wierzę, że to, co chcesz, zamiast 'własności html') . Znalazłem ten projekt Github https://github.com/mailgun/node-prelaunch ma działające rozwiązanie, które łączy szablony nodemailer z transportem mailgun-js. Jeśli to odpowie na twoje pytanie, mogę wyciągnąć kod, który specjalnie to załatwia i utworzy odpowiedź. – skotturi

Odpowiedz

9

Możesz użyć mailgun-js wraz z mailcomposer, aby wysyłać wiadomości w formacie HTML.

mailgun-js docs to przykład:

var domain = 'mydomain.mailgun.org'; 
var mailgun = require('mailgun-js')({ apiKey: "YOUR API KEY", domain: domain }); 
var mailcomposer = require('mailcomposer'); 

var mail = mailcomposer({ 
    from: '[email protected]', 
    to: '[email protected]', 
    subject: 'Test email subject', 
    body: 'Test email text', 
    html: '<b> Test email text </b>' 
}); 

mail.build(function(mailBuildError, message) { 

    var dataToSend = { 
     to: '[email protected]', 
     message: message.toString('ascii') 
    }; 

    mailgun.messages().sendMime(dataToSend, function (sendError, body) { 
     if (sendError) { 
      console.log(sendError); 
      return; 
     } 
    }); 
}); 
+0

Pracowałem dla mnie. Dzięki! – tanz

4

Alternatywnie, można sprawdzić na nodemailer na KMP. To świetny pakiet: łatwa w użyciu i obszerna dokumentacja. Z nodemailer możesz zrobić coś takiego, ale możesz zaproponować bycie bardzo dokładnym w projektowaniu wiadomości e-mail w formacie HTML. Pisanie wiadomości e-mail w formacie HTML znacznie różni się od html w Internecie. Istnieje znacznie szersza gama programów pocztowych, które będą renderować Twój HTML w różny sposób, a niektóre, np. Outlook dla Windows i Gmaila, nie będą ładnie traktować twojego html. Litmus ma kilka fajnych zasobów dotyczących najlepszych praktyk w zakresie projektowania wiadomości e-mail w formacie HTML.

Moja sugestia byłoby użyć foundation for emails do stylizacji, użyj inky uprościć semantykę pisanie html e-mail, a inline-css do inline wszystkich stylów. Nawet jeśli używasz alternatywnych metod wysyłania poczty, sprawdź te zasoby, aby je zaprojektować. Zaoszczędzą ci mnóstwo bólu głowy.

-1

podobny do This

najpierw odczytać plik i wysłać go jako ciało HTML.

Spróbuj this

Powiązane problemy