Frage

Wie erstellen Sie und E-Mails von Rails-Anwendung senden, die Bilder und die richtige Formatierung enthalten? wie die, die bekommen Sie von facebook und mögen.

War es hilfreich?

Lösung

Angenommen, Sie wissen, wie normale Klartext-E-Mails von Rails mit Action, senden HTML E-Mails zu erhalten, arbeiten Sie einen Inhaltstyp für Ihre E-Mail einstellen müssen.

Zum Beispiel Ihrer notifer könnte wie folgt aussehen:

class MyMailer < ActionMailer::Base
  def signup_notification(recipient)
    recipients   recipient.email_address_with_name
    subject      "New account information"
    from         "system@example.com"
    body         :user => recipient
    content_type "text/html"
  end
end

Beachten Sie die content_type "text/html" Linie. Dies sagt Action eine E-Mail mit einem Inhaltstyp von text/html anstelle des Standard-text/plain zu senden.

Als nächst Sie Ihre Mailer Ansichten Ausgang HTML machen. Zum Beispiel Ihrer Ansicht Datei app/views/my_mailer/signup_notification.html.erb wie folgt aussehen könnte:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <style type="text/css" media="screen">
      h3 { color: #f00; }
      ul { list-style: none; }
    </style>
</head>
<body>
  <h3>Your account signup details are below</h3>
  <ul>
    <li>Name: <%= @user.name %></li>
    <li>Login: <%= @user.login %></li>
    <li>E-mail: <%= @user.email_address %></li>
  </ul>
</body>
</html>

Wie Sie die HTML Ansicht sehen kann, kann ein <style> Tag umfassen grundlegende Stile zu definieren. Nicht alle HTML und CSS unterstützt wird, vor allem in allen Mail-Clients, aber Sie sollten auf jeden Fall ausreichend Formatierung Kontrolle über Textstile haben.

Einbetten von Bildern ist ein bisschen tricker wenn Sie E-Mails angehängt angezeigt werden soll. Wenn Sie einfach nur E-Mails von externen Websites, darunter sind, können Sie einen <img /> Tag, wie Sie in der Regel in HTML würden verwenden. Allerdings werden viele Mail-Clients diese Bilder blockieren angezeigt wird, bis der Benutzer sie autorisiert. Wenn Sie angehängte Bilder anzeigen müssen, Plug-in der Rails Inline Attachments einen Blick wert sein könnte .

Für weitere Informationen über Rails Mailing-Unterstützung, die Action Dokumentation ist eine große Ressource

Andere Tipps

Für die Bilder können Sie nur den normalen image_tag Helfer verwenden, nachdem Sie die ActionMailer::Base.asset_host = 'http://www.your-domain.com' definiert haben

Ich benutze meine Büroklammer Bilder zu speichern, so in meinem Fall habe ich ein Bild zu einer E-Mail hinzufügen, kann dies mit.

image_tag result.photo.url(:small)

Lesen Sie Wie groß HTML-E-Mails mit CSS erstellen, es ist ein guter Anfang. Alle E-Mails müssen HTML folgen 3.0!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top