2008-08-11 18 views
13

İstemci tarafı posta oluşturucu web sayfası oluşturmak istiyorum. Mailto eylemini html biçiminde kullanma sorunlarını biliyorum (standart değil, istemcideki varsayılan posta uygulaması yok). Ancak web sayfası çok önemli değil ve çok fazla umursamıyorlar.İstemci tarafında e-posta oluşturmak için JavaScript kullanabilir miyim?

konusu: tanımsız konu
gövdesi:

Param1 = deger1
param2 =
değer2

mailto eylemiyle oluşturulan posta sözdizimi vardır.
.
.
paramn = değerN

JavaScript böyle postayı biçimlendirmek için kullanabilir miyim?

Konu: XXXXX

Gövde: Değer1; Değer2; Value3 ... değerN

cevap

15

Bir projektörde kullandığımız, bir mailto: link'i olan bir popup penceresidir. Bu, tüm mail istemcileriyle çalışan bir posta oluşturmak için bulduğumuz tek yoldur (en azından tüm müşterilerimiz).

var addresses = "";//between the speech mark goes the receptient. Seperate addresses with a ; 
var body = ""//write the message text between the speech marks or put a variable in the place of the speech marks 
var subject = ""//between the speech marks goes the subject of the message 
var href = "mailto:" + addresses + "?" 
     + "subject=" + subject + "&" 
     + "body=" + body; 
var wndMail; 
wndMail = window.open(href, "_blank", "scrollbars=yes,resizable=yes,width=10,height=10"); 
if(wndMail) 
{ 
    wndMail.close();  
} 
+0

IE 8'de çalışmıyor gibi görünüyor. WndMail, hata ayıklayıcısına göre boş. –

+0

Bunu duyduğuma üzüldüm. IE6 kullanan eski bir projeden. İyileştirmek için düzenleme yapmaktan çekinmeyin :) –

+0

Şimdiye dek bir çözüm bulamıyor. –

0

sadece gönderme işleyen bir sayfaya veri göndermek için bir sebep orada mı posta? Çoğu dilde bir e-posta göndermek oldukça kolaydır, bu nedenle müşteri tarafına zorlamak için güçlü bir neden yoksa, bu rotayı tavsiye ederim. tarayıcı üzerinden posta gönderirken

6

daha fazla veya daha az, sadece

  1. web-sunucusu üzerinden posta göndermek için bunları kullanıcı girişi alır ve izin veren bir sayfa yapmak .. iki alternatifin var. Bunun için bir çeşit sunucu tarafı komut dosyasına ihtiyacınız var.
  2. Kayıtlı kullanıcıların postalarının açılmasını tetiklemek için bir mailto: link kullanın. Bu, bahsettiğiniz bariz tuzaklara sahiptir ve daha az esnektir. Gerçi daha az işe ihtiyacı var.
4

Sadece javascript ile, mümkün değil.
Javascript böyle şeyler yapmak için tasarlanmamıştır ve (iyi bir nedenle!), Yaşadığı webbrowser dışında bir şey ile etkileşim kurabilir şekilde ciddi sakat.

Bunu düşünün: İstemci tarafı javascript içeren bir web sitesi yazan bir spam gönderici, binlerce rastgele e-posta adresine otomatik olarak posta gönderecektir. Eğer insanlar o siteye gitmeli, kendi bilgisayarlarıyla dağıtılmış bir toplu posta aldatmacasına katılacaklardı ... enfeksiyon veya kullanıcı etkileşimi yok!

+3

Ama mailto eylem posta göndermek yok, sadece istemci varsayılan e-posta uygulamasını çağırır ve yeni bir posta oluşturmak ama göndermeden.Böylece, böyle bir kötü amaçlı yazılım sitesi, kullanıcı birleşimi olmadan spam gönderemez. Sadece mesajın gövdesini biçimlendirmek için javascript'i istiyorum, göndermem ama cevapları görmek mümkün değil. – Telcontar

1

Bir mailto-bağlantı oluşturmak ve javascript kullanarak ateş edebilirsiniz:

var mail = "mailto:[email protected]?subject=New Mail&body=Mail text body"; 
    var mlink = document.createElement('a'); 
    mlink.setAttribute('href', mail); 
    mlink.click(); 
+0

Teşekkür ederim, bu bana "irade alanları çalışır" süper yanıt verdi! – Fortin

İlgili konular