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.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
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>
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;
});
@İgrahiga benim bildiğim saf JS ile gönderme yok İngilizce arama yapin.
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.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ı?
npm install nodemailer
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);
}
});
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.@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?
E-ticaret platformları gibi kullanıcı bilgilerini almanın ve işlemenin bazı yaygın yöntemleri şunlardır:
<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>
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.
}
Bu sitenin çalışmasını sağlamak için gerekli çerezleri ve deneyiminizi iyileştirmek için isteğe bağlı çerezleri kullanıyoruz.