JavaScript JavaScript ile e-posta atma

igrahiga

Decapat
Katılım
16 Kasım 2021
Mesajlar
307
Çözümler
1
Daha fazla  
Cinsiyet
Erkek
Merhaba, JavaScript'te butona basınca istediğim bir adrese e-posta atmasını istiyorum bunu nasıl yaparım? Bu arada mümkün olursa vanilla js'de yapmak istiyorum. Olmazsa-da sorun değil
Şimdiden teşekkürler
 
Merhaba, JavaScript'te butona basınca istediğim bir adrese e-posta atmasını istiyorum bunu nasıl yaparım? Bu arada mümkün olursa vanilla js'de yapmak istiyorum. Olmazsa-da sorun değil
Şimdiden teşekkürler
Merhaba! JavaScript kullanarak butona basıldığında istediğiniz bir adrese e-posta göndermek mümkündür. Bunun için HTML ve JavaScript'i birlikte kullanacağız.

HTML'de, bir buton ve gerekli e-posta bilgilerini içeren bir form oluşturmalısınız. Ardından, JavaScript'te formu işleyerek e-posta gönderme işlemini gerçekleştireceğiz.

İşte vanilla JavaScript kullanarak adrese e-posta gönderme işlemini nasıl yapacağınızı gösteren bir örnek:

HTML:
HTML:
html
<form id="emailForm">
  <label for="to">Alıcı E-posta:</label>
  <input type="email" id="to" required><br>
 
  <label for="subject">Konu:</label>
  <input type="text" id="subject" required><br>
 
  <label for="message">Mesaj:</label>
  <textarea id="message" required></textarea><br>
 
  <button type="submit">E-posta Gönder</button>
</form>


JavaScript:
```
JavaScript:
js
document.getElementById('emailForm').addEventListener('submit', function(event) {
  event.preventDefault(); // Sayfanın yeniden yüklenmesini engellemek için formun varsayılan davranışını durduruyoruz.

  const to = document.getElementById('to').value;
  const subject = document.getElementById('subject').value;
  const message = document.getElementById('message').value;
 
  const mailtoLink = `mailto:${to}?subject=${encodeURIComponent(subject)}&body=${encodeURIComponent(message)}`;
 
  window.location.href = mailtoLink;
});
```

Yukarıdaki kod, kullanıcının formu doldurduktan sonra "E-posta Gönder" düğmesine tıkladığında, varsayılan e-posta istemcisine göndermek istediğiniz e-postanın içeriğiyle bir `mailto:` bağlantısı oluşturur ve sayfanın yönlenmesini bu bağlantıya ayarlar.

Bu kod, kullanıcının cihazında bir e-posta istemcisi kurulu olmasını varsayar ve istemcinin başarıyla çalışabilmesi için bu gereksinimi sağlamalısınız. Ayrıca, kullanıcının e-posta içeriğini değiştirebilmesi ve e-postayı istediği zaman gönderebilmesi için bir e-posta istemcisi açacaktır.

Ancak, modern web uygulamalarında genellikle sunucu taraflı bir çözüm kullanmak daha güvenlidir, çünkü kullanıcıların e-posta adreslerine erişmek gibi güvenlik sorunları olabilir. Bu nedenle, gerçek dünya uygulamalarında e-posta gönderme işlemleri sunucu tarafında yapılması daha tercih edilen bir yaklaşımdır.
 
@İgrahiga benim bildiğim saf JS ile gönderme yok İngilizce arama yapin.

Bunu sorma sebebim büyük proje aldım (benim için büyük 😅). E-ticaret sitesi yapmam gerekiyor (100% bir şey değil) esas olarak ürünler gösterilse ve de özel bilgileri iletse yeter (isim, soyad, adres, aldığı şeyler vb...)

@Lachin Eke bunu arka planda yapmanın bir yolu varmı? Yazdıklarını denedim ve gmail'e atıyor beni. Yani gmail'e falan girmeden direkt sitenin içinden bitirmenin yolu varmı?
 
Bunu sorma sebebim büyük proje aldım (benim için büyük 😅). E-ticaret sitesi yapmam gerekiyor (100% bir şey değil) esas olarak ürünler gösterilse ve de özel bilgileri iletse yeter (isim, soyad, adres, aldığı şeyler vb...)

@Lachin Eke bunu arka planda yapmanın bir yolu varmı? Yazdıklarını denedim ve gmail'e atıyor beni. Yani gmail'e falan girmeden direkt sitenin içinden bitirmenin yolu varmı?
Evet, doğru. Tarayıcıda arka planda e-posta göndermenin sınırlamaları vardır ve genellikle güvenlik nedenleriyle dolayı bu şekilde işlem yapmak mümkün değildir. Özellikle modern tarayıcılar, güvenlik açıklarını engellemek için bu tür eylemleri kısıtlarlar.

E-posta gönderme işlemini tamamen arka planda, kullanıcının müdahalesi olmadan gerçekleştirmek istiyorsanız, bunu yalnızca sunucu tarafında yapabilirsiniz. Bu, sunucu tarafında çalışan bir programın e-postayı oluşturup gönderdiği ve kullanıcının tarayıcı ile ilişkili olmadığı anlamına gelir.

Bunun için sunucu taraflı bir teknolojiye ihtiyacınız olacak. E-posta gönderme işlemini sunucu tarafında gerçekleştirmek için Node.js gibi bir arka uç teknolojisi kullanabilirsiniz. Node.js, JavaScript'i sunucu tarafında çalıştırmanızı sağlayan bir platformdur.

İşte Node.js kullanarak e-posta gönderme örneği:

1. Önce Node.js ve gerekli e-posta kütüphanelerini yükleyin:

Kod:
npm install nodemailer


2. Ardından, e-posta gönderme kodunu Node.js dosyanıza ekleyin:
JavaScript:
js
const nodemailer = require('nodemailer');


const transporter = nodemailer.createTransport({
  service: 'Gmail', // E-postayı hangi servis sağlayıcısından göndereceğimizi belirtiyoruz (örneğin, Gmail, Outlook, vs.).
  auth: {
    user: '[email protected]', // E-posta gönderen hesap
    pass: 'your_password', // E-posta gönderen hesabın şifresi
  },
});


const mailOptions = {
  from: '[email protected]', // E-posta gönderen adres
  to: '[email protected]', // E-posta alıcısı adres
  subject: 'E-posta Konusu',
  text: 'E-posta içeriği metin formatında.', // E-posta içeriği metin formatında
  // html: '<p>E-posta içeriği HTML formatında</p>' // E-posta içeriği HTML formatında (text yerine html kullanabilirsiniz)
};


transporter.sendMail(mailOptions, function(error, info) {
  if (error) {
    console.log(error);
  } else {
    console.log('E-posta gönderildi: ' + info.response);
  }
});

Yukarıdaki kod, Node.js ile `nodemailer` kütüphanesini kullanarak e-posta göndermeyi sağlar. Ancak, bu kodu çalıştırmak için Node.js sunucusu kurmanız gerekecektir. Sunucu tarafında bu tür işlemler gerçekleştirmek daha güvenlidir, çünkü kullanıcının e-posta adresine erişim gibi potansiyel güvenlik riskleri minimuma iner.

Lütfen unutmayın ki kullanıcı izni olmadan kullanıcının e-posta adresine erişmek ve e-posta göndermek gizlilik ihlali olabilir ve spam olarak algılanabilir. Bu nedenle, bu tür işlemleri kullanıcıdan izin alarak ve uygun güvenlik önlemleri alarak gerçekleştirmek önemlidir.
 
@Lachin Eke Peki bu bilgileri (esas olarak isim, adres, ürünler) bunları başka bir yolla yollamanın yolu varmı.
Peki trend yol, hepsi burada onlar bilgileri nasıl alıyor?
 
@Lachin Eke Peki bu bilgileri (esas olarak isim, adres, ürünler) bunları başka bir yolla yollamanın yolu varmı.
Peki trend yol, hepsi burada onlar bilgileri nasıl alıyor?
Evet, kullanıcılardan alınan kişisel bilgileri başka bir yolla güvenli bir şekilde iletmek mümkündür. Trendyol, Hepsiburada gibi büyük e-ticaret platformları, kullanıcıların bilgilerini alırken güvenliği sağlamak için çeşitli yöntemler kullanır.

1. HTTPS: Bu tür platformlar, kullanıcıların bilgilerini iletmek için HTTPS protokolünü kullanır. HTTPS, verilerin şifrelenmesini sağlar ve böylece bilgilerin güvenli bir şekilde aktarılmasını sağlar.

2. Güvenli Sunucu Yapılandırması: Trendyol, Hepsiburada gibi büyük platformlar, güvenli bir şekilde bilgi toplamak için uygun sunucu yapılandırmalarını kullanır. Bu, güvenlik sertifikaları, güvenli şifreleme algoritmaları ve diğer güvenlik önlemlerini içerir.

3. Veri Koruma ve Gizlilik Politikaları: Platformlar, kullanıcıların bilgilerini toplama ve işleme süreçlerini belirleyen veri koruma ve gizlilik politikaları uygular. Bu politikalar, kullanıcılara bilgilerinin nasıl kullanılacağı ve kimlerle paylaşılacağı hakkında şeffaf bilgi sunar.

4. Yetkili Erişim Kontrolleri: Platformlar, kullanıcı bilgilerine sadece yetkili personelin erişmesini sağlamak için erişim kontrolleri ve yetkilendirme mekanizmaları kullanır.

Trendyol, Hepsiburada gibi büyük platformlar ayrıca uygun yasal gereksinimlere uyar ve kullanıcı bilgilerini korumak için güvenlik denetimleri ve sıkı politikalar uygular.

Eğer siz de kişisel bilgileri toplamak ve işlemek istiyorsanız, kullanıcıların bilgilerini korumak için benzer güvenlik önlemleri almanız önemlidir. Kullanıcıların bilgilerini toplamadan önce onlardan açık izin almanız ve uygun gizlilik politikalarını uygulamanız gerekir. Kullanıcıların bilgilerini korumanın ve güvenliğini sağlamanın yasal ve etik gerekliliklerini anlamak önemlidir.
 
@Lachin. Eke Bunları merak etme. Esas olarak nasıl kodlarım onu söyle dostum 😅.

@Lachin. Eke Bunları merak etme. Esas olarak nasıl kodlarım onu söyle dostum 😅.
E-ticaret platformları gibi kullanıcı bilgilerini almanın ve işlemenin bazı yaygın yöntemleri şunlardır:

1. HTML Formları: Kullanıcı bilgilerini almak için HTML formlarını kullanabilirsiniz. HTML formunda kullanıcıdan isim, adres, ürünler gibi bilgileri girmesi için alanlar oluşturursunuz. Sonra bu form verilerini JavaScript veya sunucu tarafındaki bir dil (örn. PHP, Python, Node.js) ile işleyerek ilgili yerlere gönderebilirsiniz.

2. JavaScript AJAX İstekleri: Kullanıcı bilgilerini arka planda sunucuya göndermek için JavaScript AJAX istekleri kullanabilirsiniz. AJAX ile verileri alıcıya yönlendirmeden doğrudan sunucuya gönderirsiniz. Bu sayede sayfanın yeniden yüklenmesine gerek kalmaz ve kullanıcıya daha iyi bir deneyim sunarsınız.

3. Sunucu Tarafında İşleme: Kullanıcı bilgilerini doğrudan sunucu tarafında işleyebilirsiniz. Sunucu tarafında bir dil kullanarak form verilerini alıp işleyerek, e-posta gönderimi, veritabanına kayıt veya başka bir işlem yapabilirsiniz.

Örnek olarak, HTML ve JavaScript ile kullanıcı bilgilerini alıp e-posta gönderme işlemini gerçekleştirelim:

HTML:
html
HTML:
<form id="emailForm">
  <label for="to">Alıcı E-posta:</label>
  <input type="email" id="to" required><br>
 
  <label for="subject">Konu:</label>
  <input type="text" id="subject" required><br>
 
  <label for="message">Mesaj:</label>
  <textarea id="message" required></textarea><br>
 
  <button type="button" onclick="sendEmail()">E-posta Gönder</button>
</form>


JavaScript:

JavaScript:
function sendEmail() {
  const to = document.getElementById('to').value;
  const subject = document.getElementById('subject').value;
  const message = document.getElementById('message').value;
 
  // AJAX isteği ile verileri sunucuya göndermek için kullanabilirsiniz.
  // Burada sadece bir örnek olarak console.log ile gösteriyoruz.
  console.log("Alıcı: " + to);
  console.log("Konu: " + subject);
  console.log("Mesaj: " + message);
 
  // E-posta gönderimi için sunucu tarafında işlem yapmanız gerekecektir.
  // Burada sadece kullanıcının girdiği verileri aldık, gerçek bir e-posta gönderimi yapmıyoruz.
}

Tabii ki, yalnızca örnek amaçlı olduğu için bu kodlar gerçek bir e-posta gönderimi yapmıyor, sadece kullanıcının girdiği verileri gösteriyor. Gerçek e-posta gönderimi için sunucu tarafında uygun işlemleri yapmanız gerekecektir.

Ancak, e-posta gönderme işlemlerinin doğru ve güvenli bir şekilde gerçekleştirilmesi önemlidir. Bu nedenle, kullanıcıların bilgilerini korumak ve izinlerine uygun olarak kullanmak için uygun güvenlik önlemlerini ve yasal gereklilikleri unutmayın.
 

Technopat Haberler

Yeni konular

Geri
Yukarı