mata teras
mail()
contoh asas super
Untuk menghantar e -mel yang sangat mudah, kodnya adalah seperti berikut:
<?php mail($address, $subject, $message); ?>
<?php $query = "SELECT left_arm AS arm_in, right_leg AS leg_in, front_head AS head_in FROM hokey_pokey WHERE its_about = 'all'"; try { $result = $db->query($query); // ... } catch (PDOException $e) { mail("bad_things@my_database.com", "Error in " . $_SERVER["SCRIPT_NAME"], $e->getMessage()); } ?>
Contoh mel html penuh
Sekarang, mari kita lihat contoh multipart lengkap yang mengandungi badan HTML dan alternatif teks biasa dan lampiran fail: mail()
<?php mail($address, $subject, $message); ?>
Untuk pemahaman yang lebih mudah tentang konsep asas, beberapa aspek skrip e -mel yang lebih tipikal telah dipermudahkan, walaupun saya akan menerangkan ini dalam bahagian ini. Pertama, array $emailList
dipenuhi dengan beberapa alamat e -mel yang saya ingin berkongsi e -mel saya. Arahan ini diulang pada akhir skrip dan setiap alamat akan menerima salinan e -mel saya. Seterusnya, rentetan $headers
dibina dengan pelbagai tajuk e -mel. Setiap header dalam rentetan dipisahkan oleh CRLF (rn
) dan mematuhi standard RFC 2822, yang mentakrifkan format mesej e -mel. "Dari:" Mumsy Fluffy "$boundary = md5(time())
, kerana peluang perlanggaran sangat rendah. Kandungan novyrus.zip
(di sini terletak di direktori yang sama seperti skrip) dikodkan oleh Base64 dan dipecahkan ke dalam "blok" supaya klien mel dapat lebih mudah dikendalikan. Hasilnya disimpan dalam $goodAttachment
dan akan muncul kemudian. Akhirnya, komposisi badan e-mel ... "--yagottakeepemseparatedrn" Ini adalah contoh pertama menggunakan sempadan yang ditakrifkan sebelum ini dan memberitahu klien mel, "Hei, ini adalah permulaan bahagian pertama mesej e-mel", yang selalu bermula dengan dash ganda di hadapan rentetan sempadan yang anda pilih. "Kandungan-jenis: multipart/alternatif; sempadan =" Eachemailalternative "RN" Sebagai tambahan kepada "multipart/campuran" yang diberikan dalam tajuk e-mel, anda juga boleh menggunakan "Multipart/Alternatif" dalam badan dan sempadan yang berbeza (khusus untuk pecahan ini) untuk menyediakan format alternatif untuk mesej. "-AreeMailalternativen" Ini adalah contoh pertama sempadan bersarang dan melancarkan versi alternatif pertama mesej. "Kandungan-jenis: teks/plain; charset =" ISO-8859-1 "RN" tajuk jenis kandungan ini memberitahu klien mel bahawa alternatif ini adalah teks biasa. Jika pelanggan tidak dapat memaparkan format yang lebih kompleks (seperti HTML), ia akan menggunakan versi mesej ini. "Pengekodan pemindahan kandungan: 7Bitrn" pengekodan pengekodan pemindahan kandungan menentukan skim pengekodan yang digunakan dalam mesej. Atas sebab -sebab sejarah, "7bit" adalah nilai lalai, jadi ia boleh ditinggalkan. Saya memasukkannya hanya untuk memberitahu anda. "Anda mempunyai e-mel teks murah yang anda tidak mempunyai wang. Sila abaikan.rn" Ini adalah mesej bahawa orang yang menggunakan pembaca yang berfungsi bukan HTML akan melihat dalam versi teks biasa. "-AreeMailalternativen" alternatif pertama selesai dan anda boleh memulakan alternatif seterusnya. "Kandungan-jenis: teks/html; charset =" ISO-8859-1 "RN" Header jenis kandungan ini memberitahu pelanggan bahawa versi ini diformat sebagai HTML, dan set aksara yang digunakan. "... RN" Perhatikan bahawa kandungan versi ini sangat berbeza dari versi teks biasa, kecuali ia mengandungi tag HTML. Sesetengah penapis spam mungkin melihat ini sebagai sebab lain untuk mengelakkan mel saya daripada mencapai peti masuk saya. "--Yagottakeepemseparatedrn" Ini adalah sempadan berbilang/campuran, menunjukkan bahawa anda telah mencapai akhir bahagian badan mesej yang mengandungi semua alternatif. "Kandungan-jenis: Aplikasi/zip; name =" Novyrus.zip "RN" tajuk jenis kandungan menunjukkan bahawa bahagian seterusnya e-mel adalah lampiran (novyrus.zip
fail), dan ia adalah fail zip. "Pengekodan pemindahan kandungan: pengekodan 7-bit Base64RN" mengehadkan aksara kepada tujuh bit dan mungkin tidak mewakili semua watak binari yang diperlukan oleh fail zip, itulah sebabnya fail itu dikodkan dan dipodelkan. Tajuk pengekodan pemindahan kandungan di sini membolehkan pelanggan mengetahui cara menyahkod fail lampiran. Kandungan "Kandungan: Lampiran" Header Kandungan Kandungan Butiran bagaimana kandungannya diberikan;Walaupun ia tidak masuk akal untuk memaparkan fail zip sebagai elemen inline dalam mesej, ia sangat berguna untuk memasukkan imej. $goodAttachment . "rn"
Kandungan fail yang dilampirkan hanya dibuang ke dalam campuran. "--Yagottakeepemseparated--" Ini adalah sempadan akhir, perisytiharan berakhir dengan menambahkan satu set sengkang ganda hingga akhir tanpa sebarang kandungan.
Ringkasan
itu sahaja! Anda telah belajar bagaimana untuk menghantar e-mel teks ultra-asas dan e-mel HTML penuh dengan lampiran. E -mel mudah hanya memanggil fungsi mail()
. Untuk mesej HTML, anda perlu memecahkan e -mel ke bahagian menggunakan standard MIME dan memisahkannya dengan sempadan pilihan anda. Anda kemudian mentakrifkan kandungannya, bagaimana ia dikodkan, bagaimana kandungan dikendalikan, dan kandungan itu sendiri. Bergantung pada siapa yang anda merancang untuk menghantar e -mel, anda perlu menyedari apa yang mungkin membuat e -mel anda lebih cenderung ditandakan sebagai spam, sekiranya anda benar -benar ingin menghantar sesuatu yang serius. gambar dari photosani / shutterstock
FAQs Mengenai menghantar e -mel dengan php
(bahagian FAQ ditinggalkan di sini kerana panjangnya terlalu panjang dan tidak sepadan dengan matlamat asal pseudo. Kandungan bahagian FAQ selaras dengan teks asal.
Atas ialah kandungan terperinci Menghantar e -mel dengan php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!