2010-08-19 52 views
19

üzerine yakut Ben kayıtlı kullanıcıya 100 e-posta göndermek olacaksa ve bilmek istiyorsanız, kullanıcıların açık e-posta ya da değilEposta açık bildirimi - raylar

Ruby on Bu kullanarak Ruby nasıl yapabilirim?

+0

Aşağıdaki Doon'un yanıtı eksiksiz ve doğrudur. Bu tür gereksinimleri genellikle e-postanın "posta" bölümünü görebilen ve e-postaya lütfen-işareti-burada salyangoz posta teslimat garantilerini uygulama konusunda ısrar eden paydaşlardan gelmek için gerekli şartları buluyorum. Sanırım müşteriyle konuşup onlarla ilgili sınırlamaları açıklamaktan daha iyisin. – Mhmmd

+2

Sorun, açık olup olmadığını bilmek istemiyor, sorun "ya da değil" ile. Geleneksel web hanesini bir HTML e-postaya eklemek, bir e-postanın açılıp açılmadığını size söyleyebilir. Açılmış olabilir ve siz bunu bilmiyorsunuzdur, ancak hatanın o olmadığı zaman açıldığını söylemesi pek olası değildir. Doğrudan daha az olmakla birlikte, yine de iyi bir ölçüdür. Özellikle bir kampanyanın başarısını diğerine göre karşılaştırmak istendiğinde. –

cevap

24

Bunu yapmanın tek yolu, bir izleyici görüntüsüyle html e-postası kullanmaktır. Kodu kullanıcıya özel bir görüntü eklemeniz gerekir. Böyle e-posta şablonu şey

# Rails 2 
map.tracking_image "tracking_image/:id.gif", :controller => 'tracking', :action => image 

# Rails 3 
match 'products/:id', :to => 'tracking#image', :as => "tracking_image" 

# Rails 4 (match without verb is deprecated) 
get 'producsts/:id' => 'tracking#image', as: 'tracking_image' 
# or 
match 'producsts/:id' => 'tracking#image', as: 'tracking_image', via: :get 

:

class TrackingController < ApplicationController 
    def image 
    # do something with params[:id] 
    send_file "/path/to/an/image" 
    end 
end 

şu yol ekleyin Bu kullanıcının e-postaları okur garanti değil ki,

<%= image_tag tracking_image_url(@user.id) %> 

Ama farkında olmalı ve görüntüyü yükler, bazı e-posta istemcileri kullanıcı istediği zamana kadar resim yüklemez. Ve eğer yapmazsa, bunun hakkında hiçbir şey yapamazsın. Ayrıca kullanıcı sadece metin postası kullanıyorsa, bu da işe yaramaz.

+2

, tarayıcıda görüntüleri oluşturmak için ---- send_file "/path/to/an/image.gif",: type => 'image/gif',: disposition => 'inline' ---- send_file "/ yol /to/an/image.jpg ",: type => 'image/jpeg',: disposition => 'inline' – SyntaxGoonoo

+0

teknik bakış açısı - bu cevap benim sorunumu çözdü. Evet - @Doon ile tamamen katılıyorum –

9

Kısa cevap, Yapamazsınız. Biraz daha uzun cevap Güvenilir olamazsın.

VERP gibi bir şey kullanarak, uzak uç posta sunucusu e-postayı kabul ederse, iyi bir fikir elde etmek için hemen çıkma işlemini otomatikleştirebilirsiniz. Ama bundan sonra tüm bahisler kapalı. E-posta sunucusunun onunla ne yaptığını gerçekten söyleyemezsiniz (çöp kutusuna/istenmeyen posta klasörüne yönlendirin, gelen kutusuna koyun, sessizce zemin/bit kovasına bırakın, vb.). Okundu bilgisi başlıklarını e-postanızda etkinleştirebilirsiniz, ancak bu, müşteriye özeldir (ve benim gibi insanlar yemek yiyor/reddediyor). Örneğin, her e-postayı bir HTML dosyası ile kişiselleştirerek, bir uzaktan görüntü çeken, kendisiyle ilişkilendirilmiş benzersiz bir kimliği olan, ancak müşteriye özgü, çoğu uzak resmi yüklemeyen bir web hatası kullanarak bakabilirsiniz. E-postada sekme olmadıkça, sunucunuzdan ayrıldıktan sonra e-postaya ne olduğunu bildirmenin% 100 güvenilir bir yolu yoktur.

+0

Evet - Sana tamamen katılıyorum. –

2

Ruby'ye çok aşina değilim ama çok sayıda toplu posta uygulaması yazdım. Yaklaşık bir açık oran elde etmek için bir webbug görüntüsü kullanabilirsiniz.

<img src="http://mysite/trackingimage.gif?email=x&customer=y"> 

Ne yapmam okur ve URL params depolar ve daha sonra taşınılıyor da içinde bir endeks ile trackingimage.gif adlı bir dizin bulunmanız yeterlidir: Temelde bazı izleme bilgileriyle sadece bir piksel veya şeffaf resimdir gerçek görüntü