Saya ingin situs web saya memiliki kemampuan untuk mengirim email tanpa menyegarkan halaman. Jadi saya ingin menggunakan Javascript.
<form action="javascript:sendMail();" name="pmForm" id="pmForm" method="post">
Enter Friend's Email:
<input name="pmSubject" id="pmSubject" type="text" maxlength="64" style="width:98%;" />
<input name="pmSubmit" type="submit" value="Invite" />
Inilah cara saya ingin memanggil fungsi, tetapi saya tidak yakin apa yang harus dimasukkan ke dalam fungsi javascript. Dari penelitian yang telah saya lakukan saya menemukan contoh yang menggunakan metode mailto, tetapi pemahaman saya adalah bahwa sebenarnya tidak mengirim langsung dari situs.
Jadi pertanyaan saya adalah di mana saya dapat menemukan apa yang harus dimasukkan ke dalam fungsi JavaScript untuk mengirim email langsung dari situs web.
function sendMail() {
/* ...code here... */
}
javascript
email
pengguna906357
sumber
sumber
Jawaban:
Anda tidak dapat mengirim email secara langsung dengan javascript.
Namun, Anda dapat membuka klien email pengguna:
Ada juga beberapa parameter untuk mengisi awal subjek dan isi:
Solusi lain adalah dengan melakukan panggilan ajax ke server Anda, sehingga server mengirim email. Berhati-hatilah untuk tidak mengizinkan siapa pun mengirim email melalui server Anda.
sumber
window.location.href
(seperti dalam jawaban ini: stackoverflow.com/questions/271171/… ) untuk membuka klien email dan itu tidak meninggalkan jendela kosong ketika pengguna telah selesai dengan email.subject
danbody
variabel atau mereka teks aktual yang akan ada di bidang?window.open( String( 'mailto:recipient^example.com' ).replace('^', '@') );
untuk membingungkan bot spamTidak Langsung melalui Server Anda - Memanggil API Pihak Ketiga - aman dan direkomendasikan
Server Anda dapat memanggil API Pihak Ketiga setelah otentikasi dan otorisasi yang tepat. Kunci API tidak terpapar ke klien.
node.js - https://www.npmjs.org/package/node-mandrill
dan kemudian gunakan gunakan $ .ajax pada klien untuk memanggil API email Anda.
Langsung Dari Klien - Memanggil API Pihak Ketiga - tidak direkomendasikan
Kirim email hanya menggunakan JavaScript
Seperti ini -
https://medium.com/design-startups/b53319616782
Catatan: Perlu diingat bahwa kunci API Anda dapat dilihat oleh siapa saja, sehingga setiap pengguna jahat dapat menggunakan kunci Anda untuk mengirim email yang dapat menghabiskan kuota Anda.
sumber
Saya tidak dapat menemukan jawaban yang benar-benar memuaskan pertanyaan awal.
Saya mengumpulkan layanan gratis sederhana yang memungkinkan Anda untuk membuat permintaan HTTP POST standar untuk mengirim email. Ini disebut PostMail , dan Anda bisa memposting formulir, menggunakan Javascript atau jQuery. Ketika Anda mendaftar, itu memberi Anda kode yang dapat Anda salin & tempel ke situs web Anda. Berikut ini beberapa contohnya:
Javascript:
jQuery:
Sekali lagi, dalam pengungkapan penuh, saya membuat layanan ini karena saya tidak dapat menemukan jawaban yang cocok.
sumber
Anda dapat menemukan apa yang harus dimasukkan ke dalam fungsi JavaScript dalam posting ini.
Berikan skrip PHP Anda sendiri (atau bahasa apa pun) untuk mengirim surel.
sumber
Saya menyampaikan kabar ini kepada Anda. Anda TIDAK BISA mengirim email dengan JavaScript per se.Berdasarkan konteks pertanyaan OP, jawaban saya di atas tidak berlaku lagi seperti yang ditunjukkan oleh @KennyEvitt di komentar. Sepertinya Anda dapat menggunakan JavaScript sebagai klien SMTP .
Namun , saya belum menggali lebih dalam untuk mencari tahu apakah itu cukup aman & lintas-browser. Jadi, saya tidak bisa mendorong atau mencegah Anda untuk menggunakannya. Gunakan dengan risiko Anda sendiri.
sumber
Saya tahu saya terlambat untuk menulis jawaban untuk pertanyaan ini, tetapi saya pikir ini akan digunakan untuk siapa saja yang berpikir untuk mengirim email melalui javascript.
Cara pertama yang saya sarankan adalah menggunakan callback untuk melakukan ini di server. Jika Anda benar-benar ingin itu ditangani menggunakan folowing javascript adalah apa yang saya sarankan.
Cara termudah yang saya temukan adalah menggunakan smtpJs. Perpustakaan gratis yang dapat digunakan untuk mengirim email.
1. Sertakan skrip seperti di bawah ini
2. Anda dapat mengirim email seperti ini
Yang tidak disarankan karena akan menampilkan kata sandi Anda di sisi klien. Dengan demikian, Anda dapat melakukan hal berikut yang mengenkripsi kredensial SMTP Anda, dan menguncinya ke domain tunggal, dan meneruskan token aman alih-alih kredensial sebagai gantinya.
Terakhir, jika Anda tidak memiliki server SMTP, Anda menggunakan layanan relai smtp seperti Email Elastis
Juga di sini adalah tautan ke situs web resmi SmtpJS.com di mana Anda dapat menemukan semua contoh yang Anda butuhkan dan tempat di mana Anda dapat membuat token aman Anda.
Saya harap seseorang menemukan detail ini bermanfaat. Selamat coding.
sumber
Tampaknya ada solusi baru di cakrawala. Ini disebut EmailJS . Mereka mengklaim bahwa tidak ada kode server yang diperlukan. Anda dapat meminta undangan.
Pembaruan Agustus 2016: EmailJS tampaknya sudah tayang. Anda dapat mengirim hingga 200 email per bulan secara gratis dan menawarkan langganan untuk volume yang lebih tinggi.
sumber
window.open ('mailto: [email protected]'); seperti di atas tidak menyembunyikan alamat email "[email protected]" agar tidak dipanen oleh robot spam. Dulu saya sering mengalami masalah ini.
sumber
Javascript adalah sisi klien, Anda tidak dapat mengirim email dengan Javascript. Browser hanya mengenali mungkin
mailto:
dan memulai klien email default Anda.sumber
Dalam
sendMail()
fungsi Anda , tambahkan panggilan ajax ke backend Anda, di mana Anda dapat menerapkan ini di sisi server.sumber
sumber
JavaScript tidak dapat mengirim email dari browser web. Namun, mundur dari solusi yang sudah Anda coba terapkan, Anda dapat melakukan sesuatu yang memenuhi persyaratan asli:
Anda dapat menggunakan JavaScript untuk membangun nilai-nilai yang dibutuhkan email dan kemudian membuat permintaan AJAX ke sumber daya server yang benar-benar mengirim email. (Saya tidak tahu bahasa / teknologi sisi server apa yang Anda gunakan, sehingga bagian itu terserah Anda.)
Jika Anda tidak terbiasa dengan AJAX, pencarian Google cepat akan memberi Anda banyak informasi. Secara umum, Anda bisa menjalankannya dengan cepat menggunakan fungsi $ .ajax () dari jQuery. Anda hanya perlu memiliki halaman di server yang dapat dipanggil dalam permintaan.
sumber
Sepertinya satu 'jawaban' untuk ini adalah menerapkan klien SMPT. Lihat email.js untuk perpustakaan JavaScript dengan klien SMTP.
Inilah repo GitHub untuk klien SMTP. Berdasarkan README repo, tampak bahwa berbagai shims atau polyfill mungkin diperlukan tergantung pada browser klien, tetapi secara keseluruhan itu tampaknya layak (jika tidak benar-benar dicapai secara signifikan), tidak dengan cara yang mudah dijelaskan oleh bahkan jawaban panjang di sini.
sumber
Ada layanan kombinasi. Anda dapat menggabungkan solusi yang tercantum di atas seperti mandrill dengan layanan EmailJS, yang dapat membuat sistem lebih aman. Mereka belum memulai layanan.
sumber
Cara lain untuk mengirim email dari JavaScript, adalah dengan menggunakan directtomx.com sebagai berikut;
Kemudian panggil dari halaman Anda sebagai berikut;
sumber
Saya akan melakukannya dengan perpustakaan SMTPJ . Ia menawarkan enkripsi ke kredensial Anda seperti nama pengguna, kata sandi, dll.
sumber
Tidak ada jawaban langsung untuk pertanyaan Anda karena kami tidak dapat mengirim email hanya menggunakan javascript, tetapi ada cara untuk menggunakan javascript untuk mengirim email kepada kami:
1) menggunakan api untuk dan memanggil api melalui javascript untuk mengirim email kepada kami, misalnya https://www.emailjs.com mengatakan bahwa Anda dapat menggunakan kode seperti di bawah ini untuk memanggil api mereka setelah beberapa pengaturan:
2) membuat kode backend untuk mengirim email untuk Anda, Anda dapat menggunakan kerangka backend untuk melakukannya untuk Anda.
3) menggunakan sesuatu seperti:
yang akan membuka aplikasi email Anda, ini mungkin masuk ke popup yang diblokir di browser Anda.
Secara umum, mengirim email adalah tugas server, jadi harus dilakukan dalam bahasa backend, tetapi kita dapat menggunakan javascript untuk mengumpulkan data yang diperlukan dan mengirimkannya ke server atau api, juga kita dapat menggunakan aplikasi paritas ketiga dan membukanya via browser menggunakan javascript seperti yang disebutkan di atas.
sumber
Jawaban singkatnya adalah Anda tidak dapat melakukannya menggunakan JavaScript saja. Anda memerlukan penangan sisi server untuk terhubung dengan server SMTP untuk benar-benar mengirim surat. Ada banyak skrip surat online, seperti ini untuk PHP:
Gunakan Ajax untuk mengirim permintaan ke skrip PHP, periksa bahwa bidang yang diperlukan tidak kosong atau salah menggunakan js juga menyimpan catatan pengiriman surat oleh siapa dari server Anda.
Periksa apakah ada kesalahan yang ditemukan saat mengirim surat dari skrip Anda dan lakukan tindakan yang sesuai.
Untuk mengatasinya misalnya jika alamat email salah atau email tidak terkirim karena masalah server atau sedang dalam antrian laporkan ke pengguna segera dan mencegah multi pengiriman email yang sama berulang-ulang. Dapatkan respons dari skrip Anda Menggunakan jQuery GET dan POST
sumber
Karena semua ini adalah info yang luar biasa, ada api kecil bernama Mandrill untuk mengirim surat dari javascript dan berfungsi dengan baik. Anda bisa mencobanya. Inilah sedikit tutorial untuk memulai.
sumber
Kirim email menggunakan JavaScript atau jQuery
sumber
var objO = new ActiveXObject('Outlook.Application');