Görüntüleri ve düzgün biçimlendirme içeren Rails uygulamasından e-postalar nasıl oluşturup gönderirsiniz? Facebook'tan ve beğendiğiniz gibi.Rails'in css ve görüntüleri ile nasıl e-posta oluşturabilirim?
cevap
ActionMailer kullanarak Rails'ten normal düz metin e-postalarını nasıl göndereceğinizi bildiğinizi varsayarak, HTML
e-postanızı almak için e-postanız için bir içerik türü ayarlamanız gerekir.
Örneğin, bildirimde bulunan bu gibi görünebilir:
class MyMailer < ActionMailer::Base
def signup_notification(recipient)
recipients recipient.email_address_with_name
subject "New account information"
from "[email protected]"
body :user => recipient
content_type "text/html"
end
end
Not content_type "text/html"
hattı. Bu, ActionMailer uygulamasına varsayılan text/plain
yerine text/html
içerik türünde bir e-posta göndermesini bildirir.
Sonraki mailer görünümleri çıktısını HTML
yapmalısınız. Örneğin, görünüm dosyası app/views/my_mailer/signup_notification.html.erb
aşağıdaki gibi görünebilir:
<!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>
Eğer HTML
görünümü, temel stiller tanımlamak için bir <style>
etiketi içerebilir görebileceğiniz gibi. Tüm posta istemcilerinde özellikle HTML
ve CSS
desteklenmez, ancak metin stilleri üzerinde yeterli biçimlendirme denetimine sahip olmanız gerekir.
Ekli e-postaları görüntülemeyi düşünüyorsanız görüntüleri katıştırmak biraz daha zordur. Harici sitelerden e-postaları dahil ediyorsanız, genellikle HTML
'da olduğu gibi bir <img />
etiketi kullanabilirsiniz. Bununla birlikte, birçok posta istemcisi, kullanıcı görüntüleri yetkilendirene kadar bu görüntülerin görüntülenmesini engeller. Ekli görüntüleri görüntülemeniz gerekiyorsa, Raylar eklentisi Inline Attachments bir göz atmaya değer olabilir. Raylar posta desteğine ilişkin daha fazla bilgi için
, ActionMailer documentation harika bir kaynak
Sadece bir not: Gmail ** harici CSS'yi ** desteklemeyecektir. CSS'nin düzgün bir şekilde Gmail'de görüntülenmesini istiyorsanız, '
gibi satır içi stillerini kullanmanız gerekir. Roadie'yi kullanarak stillerinizi otomatik olarak çizebilirsiniz: https://github.com/Mange/roadie –
The Premailer gem, inlining için de çok uygundur stilleri. E-posta şablonlarınızda/düzenlerinizde kullanımı çok kolay hale getirmek için Premailer'i kullanan inline_css adlı bir mücevher de vardır. – scottwb
How to Create Great HTML Emails with CSS'u okuyun, iyi bir başlangıç. Tüm e-postaların HTML 3.0'ı takip etmesi gerekiyor!
size benim görüntüleri depolamak için Paperclip kullanmak ActionMailer::Base.asset_host = 'http://www.your-domain.com'
tanımladıktan sonra görüntüler için sadece normal bir image_tag
yardımcısı kullanabilirsiniz Benim durumumda bunu kullanarak bir e-postaya resim ekleyebilirim.
image_tag result.photo.url(:small)
Bu 'config.action_mailer.asset_host' şimdi – elsurudo
- 1. Arka plan görüntüleri ile navbar bağlantıları nasıl oluşturabilirim?
- 2. CSS arka plan görüntüleri
- 3. html & css görüntüleri ve metni hizalayın
- 4. Eposta çiftleşmiş
- 5. eposta hyperlinkbutton
- 6. Meteor Görüntüleri, CSS, "Normal" Web Sunumu
- 7. Eposta açık bildirimi - raylar
- 8. PHP eposta doğrulama
- 9. Eposta soğukkanlılık iOS 8
- 10. Eposta biçimlendirme tableView
- 11. CSS özel işaretçileri için harici görüntüleri kullanma
- 12. yükleme ve depolama görüntüleri
- 13. css ile görüntünün içindeki eğri
- 14. Nasıl html ve css kullanarak sanal bir kalıp (zar oynamak için) oluşturabilirim?
- 15. CSS ve Javascript ile HTML nasıl küçültülür?
- 16. Mac Terminal Eklentiyle Eposta Gönderme
- 17. DIV'ler ve CSS ile Çalışmak
- 18. SES Eposta değil ben laravel
- 19. Css sayacı css seçici ile nasıl çalışır?
- 20. Google Chrome'da CSS kullanarak nasıl kenarlıksız bir metin kutusu oluşturabilirim?
- 21. Kargo ile birden çok ikili nasıl oluşturabilirim?
- 22. Meteor ile dinamik URL'leri nasıl oluşturabilirim?
- 23. springMVC + thymleaf kullanım templateResolver eposta
- 24. Varsayılan kurucu ile sınıfımın dizisini nasıl oluşturabilirim?
- 25. JHipster'da Kullanıcı ile ilişkiyi nasıl oluşturabilirim?
- 26. Docker ile bir mysql db nasıl oluşturabilirim?
- 27. openstack4j ile nasıl yeni bir rol oluşturabilirim?
- 28. Pymongo ile bir dizin nasıl oluşturabilirim
- 29. Postgres. Bir veritabanını ve kullanıcıyı nasıl oluşturabilirim?
- 30. HDR görüntüleri Çekirdek Resim ile?
Cevabım, sorunuzu yanıtlıyor mu? –
@bjeanes - Başka bir şeyle meşgul olduğum için bunu denemek için zamanım olmadı, ama çözümünüz doğru satırlarda olduğu gibi görünüyor. Teşekkürler. Denemek ve güncellemek. – Akshay