Ini agak membingungkan untuk dijelaskan, jadi bersabarlah dengan saya di sini ...
Saya ingin menyiapkan sistem di mana pengguna dapat mengirim email kerangka melalui situs web saya, kecuali itu sebenarnya tidak dikirim menggunakan server saya - melainkan hanya membuka klien email lokal mereka sendiri dengan email yang siap digunakan. Aplikasi akan mengisi badan email dengan variabel yang telah ditentukan sebelumnya, untuk menghemat pengguna karena harus mengetiknya sendiri. Mereka kemudian dapat mengedit pesan sesuai keinginan, jika tidak sesuai dengan tujuan mereka.
Ada sejumlah alasan mengapa saya ingin email tersebut melalui klien email lokal pengguna, jadi meminta server untuk mengirim email bukanlah suatu pilihan: itu harus 100% sisi klien.
Saya sudah memiliki solusi yang sebagian besar berfungsi, dan saya akan memposting detailnya sebagai jawaban, saya bertanya-tanya apakah ada cara yang lebih baik?
sumber
Jawaban:
Cara saya melakukannya sekarang pada dasarnya seperti ini:
HTML:
Javascript:
Ini, yang mengejutkan, bekerja dengan cukup baik. Satu-satunya masalah adalah jika badannya sangat panjang (lebih dari 2000 karakter), maka itu hanya membuka email baru tetapi tidak ada informasi di dalamnya. Saya menduga bahwa ini berkaitan dengan panjang maksimum URL yang terlampaui.
sumber
Berikut cara melakukannya menggunakan jQuery dan "elemen" untuk diklik:
Kemudian, Anda bisa mendapatkan konten Anda baik dengan memasukkannya dari kolom input (mis. Menggunakan
$('#input1').val()
atau dengan skrip sisi server dengan$.get('...')
. Selamat bersenang-senangsumber
Anda tidak memerlukan javascript, Anda hanya perlu href Anda untuk dikodekan seperti ini:
sumber
href
nilainya ketika alamat dipilih. Jika postingan diperlukan untuk mendapatkan alamat email pada saat klik terjadi, ini mungkin tidak akan berhasil.Bagaimana dengan memiliki validasi langsung di kotak teks, dan setelah melewati 2000 (atau berapapun ambang batas maksimumnya) maka tampilkan 'Email ini terlalu panjang untuk diselesaikan di browser, tolong
<span class="launchEmailClientLink">launch what you have in your email client</span>
'Untuk yang saya miliki
dan jQuery ini ke onDomReady Anda
sumber
Anda dapat menggunakan layanan gratis ini: https://www.smtpjs.com
<script src="https://smtpjs.com/v2/smtp.js"></script>
sumber
Jika ini hanya akan membuka klien pengguna untuk mengirim email, mengapa tidak membiarkan mereka membuatnya di sana juga. Anda kehilangan kemampuan untuk melacak apa yang mereka kirim, tetapi jika itu tidak penting, maka cukup kumpulkan alamat dan subjek dan munculkan klien untuk membiarkan pengguna mengisi badannya.
sumber
Masalah dengan idenya adalah bahwa pengguna harus memiliki klien email, yang tidak terjadi jika dia mengandalkan email web, yang merupakan kasus bagi banyak pengguna. (setidaknya tidak ada perubahan untuk mengalihkan ke webmail ini ketika saya menyelidiki masalah ini belasan tahun yang lalu).
Itulah mengapa solusi normal adalah mengandalkan php mail () untuk mengirim email (kemudian, sisi server).
Tetapi jika saat ini "klien email" selalu disetel, secara otomatis, berpotensi menjadi klien webmail, saya akan senang mengetahuinya.
sumber
Kirim permintaan ke mandrillapp.com :
sumber