- Konu sahibi
- #1
İlk paragrafta ana yanıtı, izlenecek yolu ve ulaşılabilecek sonucu doğrudan ver. Form gönderildiğinde kullanıcının e-posta uygulamasını açmak için formun
Aşağıdaki örnekte form gönderildiğinde kullanıcının varsayılan e-posta uygulaması açılır.
Formu kaydedip tarayıcıda açtığında kullanıcı alanları doldurur ve düğmeye basar. Tarayıcı, cihazda tanımlı e-posta uygulamasını açmayı dener. Uygulama açılırsa alıcı adresi ve form alanları ileti taslağına aktarılabilir; kullanıcı mesajı kontrol edip e-postayı ayrıca göndermelidir. Formun gönderilmesi, e-postanın kesin olarak gönderildiği anlamına gelmez.
Form yerine doğrudan bir e-posta bağlantısı oluştururken konu ve gövdeyi
Burada boşluklar
Tablodaki ilk sonuçta e-posta uygulamasının açılması beklenen davranıştır; fakat bu, alıcının iletiyi aldığı anlamına gelmez. Kullanıcının iletiyi göndermesi, e-posta hesabının çalışması ve iletinin teslim edilmesi ayrı aşamalardır.
İletişim formundan gelen bilgilerin size otomatik ulaşmasını istiyorsan
Örneğin formun
Bu örnekte
Sunucu tarafı yöntemde form verisini doğrudan e-posta başlıklarına eklememeli, kullanıcı girdisini doğrulamalı ve başarı mesajını e-posta hizmetinden alınan sonuca göre göstermelisin. Başarı mesajı yalnızca sunucu isteği kabul ettiğinde gösterilmeli; gönderim başarısızsa kullanıcıya yeniden deneme veya farklı bir iletişim yöntemi sunulmalıdır.
Yalnızca ziyaretçinin kendi e-posta uygulamasında taslak açılacaksa
Formun her cihazda çalışması, mesajların otomatik işlenmesi, kayıt altına alınması veya ziyaretçinin e-posta uygulamasına bağlı kalmadan gönderim yapılması gerekiyorsa formu sunucu tarafına gönder. Böylece açılan pencereye değil, uygulamanın aldığı ve işlediği sonuca göre işlem yapabilirsin.
Ayrıca alıcı adresini HTML içinde açıkça yazmanın otomatik istenmeyen posta taramalarını artırabileceğini unutma. Bu nedenle herkese açık ve düzenli kullanılan iletişim formlarında
action değerini mailto: adresiyle tanımlayabilirsin. Ancak bu yöntem e-postayı sunucuda göndermez; cihazda yapılandırılmış bir e-posta istemcisi varsa yeni ileti penceresi açılır. Form verilerinin güvenilir biçimde alınması veya otomatik e-posta gönderilmesi gerekiyorsa HTML formunu bir sunucu tarafı koduna göndermelisin.HTML formundan e-posta uygulamasını açma
Aşağıdaki örnekte form gönderildiğinde kullanıcının varsayılan e-posta uygulaması açılır.
mailto: sonrasındaki adres, alıcının e-posta adresidir.
HTML:
<form action="mailto:[email protected]" method="post" enctype="text/plain">
<label for="ad">Adınız:</label>
<input type="text" id="ad" name="ad" required>
<label for="mesaj">Mesajınız:</label>
<textarea id="mesaj" name="mesaj" required></textarea>
<button type="submit">E-posta olarak gönder</button>
</form>
Formu kaydedip tarayıcıda açtığında kullanıcı alanları doldurur ve düğmeye basar. Tarayıcı, cihazda tanımlı e-posta uygulamasını açmayı dener. Uygulama açılırsa alıcı adresi ve form alanları ileti taslağına aktarılabilir; kullanıcı mesajı kontrol edip e-postayı ayrıca göndermelidir. Formun gönderilmesi, e-postanın kesin olarak gönderildiği anlamına gelmez.
Alıcı, konu ve gövdeyi önceden doldurma
Form yerine doğrudan bir e-posta bağlantısı oluştururken konu ve gövdeyi
mailto: adresine ekleyebilirsin:
HTML:
<a href="mailto:[email protected]?subject=Web%20formu&body=Merhaba%2C%0A%0ABilgi%20almak%20istiyorum.">
E-posta gönder
</a>
Burada boşluklar
%20, satır sonları ise %0A ile kodlanmıştır. Form verilerini bu bağlantıya JavaScript ile eklemek mümkün olsa da kullanıcı girdisini URL içine taşımak uzunluk, karakter kodlama ve güvenlik sorunlarına yol açabilir. Bu nedenle kısa ve sabit bir konu veya mesaj için bağlantı yöntemi, alanları olan bir form için ise form kullanmak daha uygundur.Form gönderildiğinde hangi sonuçla karşılaşırsın?
| Görülen durum | Anlamı | Yapılacak işlem |
|---|---|---|
| E-posta uygulaması açıldı | İşletim sistemi veya tarayıcı bir e-posta istemcisi buldu; ileti henüz gönderilmiş değildir. | Alıcıyı, konu ve mesajı kontrol edip e-postayı istemci içinden gönder. |
| Uygulama seçme veya izin penceresi çıktı | Tarayıcı, mailto: bağlantısını hangi uygulamanın işleyeceğini soruyor. | Kullanacağın e-posta uygulamasını seç; seçenek yoksa cihazda varsayılan e-posta istemcisi tanımla. |
| Hiçbir şey olmadı veya hata görüldü | Cihazda uygun bir e-posta istemcisi tanımlı olmayabilir ya da tarayıcı mailto: davranışını sınırlamış olabilir. | Başka bir tarayıcı veya yapılandırılmış e-posta istemcisiyle dene. Ziyaretçilerin tamamında çalışması gerekiyorsa sunucu tarafı yönteme geç. |
| Gönder düğmesinden sonra başarı mesajı gösterildi | Bu mesaj yalnızca sayfanın kendi kodunun çalıştığını gösterir; e-postanın karşı tarafa ulaştığını kanıtlamaz. | Gerçek gönderim sonucu için sunucudan veya e-posta hizmetinden alınan yanıtı kontrol et. |
Güvenilir e-posta gönderimi için doğru yöntem
İletişim formundan gelen bilgilerin size otomatik ulaşmasını istiyorsan
mailto: yöntemine güvenmemelisin. HTML yalnızca form alanlarını ve gönderim isteğini oluşturur. Form verilerini alıp e-posta gönderecek bir sunucu tarafı işlemine ihtiyaç vardır.Örneğin formun
action değeri kendi sunucu adresine yönlendirilebilir:
HTML:
<form action="/iletisim-gonder" method="post">
<label for="ad">Adınız:</label>
<input type="text" id="ad" name="ad" required>
<label for="eposta">E-posta adresiniz:</label>
<input type="email" id="eposta" name="eposta" required>
<label for="mesaj">Mesajınız:</label>
<textarea id="mesaj" name="mesaj" required></textarea>
<button type="submit">Gönder</button>
</form>
Bu örnekte
/iletisim-gonder adresinde çalışan PHP, Node.js, Python veya başka bir sunucu uygulaması form verilerini alır. Uygulama önce zorunlu alanları ve e-posta adresini doğrular, ardından güvenilir bir e-posta gönderim yöntemi kullanır ve başarılı ya da hatalı sonucu form sayfasına bildirir. Kullanıcının e-posta uygulamasına sahip olması gerekmez.Sunucu tarafı yöntemde form verisini doğrudan e-posta başlıklarına eklememeli, kullanıcı girdisini doğrulamalı ve başarı mesajını e-posta hizmetinden alınan sonuca göre göstermelisin. Başarı mesajı yalnızca sunucu isteği kabul ettiğinde gösterilmeli; gönderim başarısızsa kullanıcıya yeniden deneme veya farklı bir iletişim yöntemi sunulmalıdır.
Hangi yöntemi seçmelisin?
Yalnızca ziyaretçinin kendi e-posta uygulamasında taslak açılacaksa
action="mailto:..." yeterli olabilir. Bu yöntem basit bir kişisel sayfa, kısa iletişim bağlantısı veya ziyaretçinin iletiyi kendi hesabından yazmasını istediğin durumlar içindir.Formun her cihazda çalışması, mesajların otomatik işlenmesi, kayıt altına alınması veya ziyaretçinin e-posta uygulamasına bağlı kalmadan gönderim yapılması gerekiyorsa formu sunucu tarafına gönder. Böylece açılan pencereye değil, uygulamanın aldığı ve işlediği sonuca göre işlem yapabilirsin.
Ayrıca alıcı adresini HTML içinde açıkça yazmanın otomatik istenmeyen posta taramalarını artırabileceğini unutma. Bu nedenle herkese açık ve düzenli kullanılan iletişim formlarında
mailto: yerine sunucu tarafı gönderim veya güvenilir bir e-posta hizmeti kullanmak daha uygun olur.