php

Penggunaan surat () Fungsi dalam PHP di Ubuntu

Penggunaan surat () Fungsi dalam PHP di Ubuntu

Fungsi mel () adalah fungsi PHP bawaan yang digunakan untuk menghantar e-mel dari localhost. Tetapi beberapa konfigurasi diperlukan untuk menghantar e-mel menggunakan fungsi ini. Anda memerlukan maklumat pelayan mel yang sebenar untuk mengatur konfigurasi. Anda boleh menggunakan maklumat pelayan mel dari pelayan hosting aktif anda, atau anda boleh menggunakan maklumat pelayan mel percuma. Akaun Gmail dan maklumat pelayan SMTP Gmail digunakan dalam tutorial ini untuk menghantar e-mel menggunakan fungsi mel ().

Konfigurasi Persediaan

Dua fail diperlukan untuk diubah untuk mengatur konfigurasi: php.ini fail dan fail lain diperlukan untuk mengkonfigurasi untuk menyediakan pelayan e-mel. Ikuti langkah yang ditunjukkan di bawah untuk mengatur konfigurasi. Banyak pakej yang terdapat di PHP untuk menghantar e-mel. msmtp adalah pelanggan pelayan surat PHP yang digunakan dalam tutorial ini untuk menghantar e-mel menggunakan fungsi surat PHP ().

Langkah-langkah:

Jalankan arahan berikut untuk memasang msmtp pakej di Ubuntu untuk menyediakan pelayan mel:

$ sudo apt-get install msmtp

Buat fail konfigurasi dengan nama / etc / msmtprc dengan arahan berikut:

$ sudo nano / etc / msmtprc

Tambahkan kandungan berikut ke fail. Tambahkan alamat e-mel yang sah untuk pengguna dan kata laluan yang sah untuk kata laluan yang akan digunakan untuk menghantar e-mel. Tetapkan alamat e-mel pengirim untuk bentuk nilai.

lalai
dihidupkan
tls_starttls dihidupkan
tls_trust_file / etc / ssl / certs / ca-sijil.crt
lalai akaun
hos smtp.gmail.com
pelabuhan 587
autentikasi pada
nama pengguna pengguna @ gmail.com
kata laluan user_password
dari pengirim_email_address

Jalankan arahan berikut untuk menetapkan hak milik dan kebenaran untuk / etc / fail msmtprc:

$ sudo chown fahmida / etc / msmtprc
$ sudo chmod 0600 / etc / msmtprc

Buka php.ini fail dan ubah kandungan berikut dengan nilai berikut:

SMTP = smtp.gmail.com
smtp_port = 587
sendmail_path = "/ usr / bin / msmtp -t -i"

Sintaks:

bool mail (string $ to, string $ subject, string $ message [, campuran $ extra_headers [, string $ extra_parameters]])

Fungsi ini boleh mengambil empat argumen. Argumen pertama mengambil alamat e-mel penerima. Argumen kedua mengambil subjek e-mel. Hujah ketiga mengambil badan e-mel. Argumen terakhir adalah pilihan, dan ia mengandungi maklumat tambahan e-mel sebagai rentetan atau array.

Menghantar e-mel menggunakan fungsi mel ()

Contoh yang berbeza untuk menghantar e-mel menggunakan fungsi surat () PHP ditunjukkan dalam bahagian tutorial ini.

Contoh 1: Hantar e-mel teks mudah

Contoh ini menunjukkan bagaimana e-mel teks mudah dapat dihantar menggunakan fungsi mel (). Buat fail PHP dengan skrip berikut.

Anda harus menetapkan alamat e-mel yang sah untuk $ hingga pemboleh ubah untuk mendapatkan output dari skrip berikut. Teks ringkas ditetapkan sebagai badan mesej.

// Tetapkan alamat e-mel penerima
$ to = "[e-mel dilindungi]";
// Tetapkan subjek e-mel
$ subject = "Ia adalah e-mel ujian";
// Tetapkan badan e-mel
$ message = "Ia sedang menguji badan e-mel";
// Tetapkan maklumat tajuk
$ headers = "Dari: [dilindungi e-mel] \ r \ n";
$ pengepala .= "Balas-Kepada: [dilindungi e-mel] \ r \ n";
// Hantar e-mel menggunakan fungsi mel mesej ()
jika (mel ($ ke, $ subjek, $ mesej, $ tajuk))

echo "E-mel berjaya dihantar.\ r \ n ";

lain
echo "E-mel belum dihantar.
";

?>

Output berikut akan muncul setelah menjalankan skrip dari pelayan web jika fungsi surat () berfungsi dengan baik.


Keluaran berikut akan muncul jika anda memeriksa kotak masuk alamat e-mel yang telah ditetapkan sebagai alamat e-mel penerima.

Contoh 2: Hantar e-mel berformat HTML

Contoh ini menunjukkan bagaimana e-mel berformat HTML dapat dihantar menggunakan fungsi mel (). Buat fail PHP dengan skrip berikut.

$ mesej pemboleh ubah dimulakan dengan kandungan HTML yang akan dihantar sebagai badan e-mel. Ia disebut dalam $ pengepala pemboleh ubah bahawa kandungan e-mel adalah HTML.

// Tetapkan alamat e-mel penerima
$ to = "[e-mel dilindungi]";
// Tetapkan subjek e-mel
$ subject = 'Pendaftaran Berjaya';
// Tetapkan badan e-mel
$ mesej = '

Pendaftaran anda berjaya diselesaikan.


nama pengguna = fahmida20

kata laluan = aswQ34ghqw


';
// Tetapkan perjalanan pulang
$ nl = "\ r \ n";
// Tetapkan tajuk jenis Kandungan
$ headers = 'MIME-Versi: 1.0 '.$ nl;
$ pengepala .= 'Jenis-kandungan: teks / html; charset = iso-8859-1 '.$ nl;
// Tetapkan maklumat tajuk tambahan
$ pengepala .= 'Kepada: Mehrab Hossain'.$ nl;
$ pengepala .= 'Dari: Pentadbir'.$ nl;
$ pengepala .= 'Cc: [dilindungi e-mel]'.$ nl;
// Hantar e-mel menggunakan fungsi mel mesej ()
jika (mel ($ ke, $ subjek, $ mesej, $ tajuk))
echo "E-mel berjaya dihantar.\ r \ n ";

lain
echo "E-mel belum dihantar. \ r \ n ";

?>

Output berikut akan muncul setelah menjalankan skrip dari pelayan web jika fungsi surat () berfungsi dengan baik.


Keluaran berikut akan muncul jika anda memeriksa kotak masuk alamat e-mel yang telah ditetapkan sebagai alamat e-mel penerima.

Contoh 3: Hantar e-mel dengan lampiran

Contoh ini menunjukkan bagaimana e-mel dapat dihantar dengan melampirkan fail teks. Buat fail teks dengan skrip berikut.

Kandungan fail teks dibaca dan dikodkan sebelum lampiran dan fungsi md5 () digunakan dalam skrip untuk menghasilkan nombor rawak untuk kandungan campuran. Semua maklumat yang diperlukan ditambah dalam $ pengepala dan $ mesej pemboleh ubah sebelum menghantar e-mel.

// Tetapkan alamat e-mel penerima
$ to = "[e-mel dilindungi]";
// Tetapkan subjek e-mel
$ subject = "Lampiran Fail";
// Tetapkan perjalanan pulang
$ nl = "\ r \ n";
// Tetapkan hash rawak yang akan digunakan untuk kandungan campuran
$ pemisah = md5 (masa ());
// Baca isi fail yang dilampirkan
$ nama fail = 'myfile.txt ';
$ content = file_get_contents ($ nama fail);
$ content = chunk_split (base64_encode ($ content));
// Tetapkan mesej e-mel dengan maklumat lampiran
$ mesej = "-" . $ pemisah . $ nl;
$ mesej .= "Jenis Kandungan: teks / polos; charset =" iso-8859-1 "" . $ nl;
$ mesej .= "Pengalihan Kandungan-Pengekodan: 8bit" . $ nl;
$ mesej .= "Fail teks dilampirkan bersama e-mel." . $ nl;
$ mesej .= "-" . $ pemisah . $ nl;
$ mesej .= "Jenis Kandungan: aplikasi / octet-stream; name =" " . $ nama fail . "" " . $ nl;
$ mesej .= "Pengalihan Kandungan-Pengekodan: base64" . $ nl;
$ mesej .= "Kandungan-Pelupusan: lampiran" . $ nl;
$ mesej .= kandungan $ . $ nl;
$ mesej .= "-" . $ pemisah . "-";
// Tetapkan tajuk jenis Kandungan
$ headers = 'MIME-Versi: 1.0 '.$ nl;
$ pengepala .= "Dari: [dilindungi e-mel]".$ nl;
$ pengepala .= "Balas ke: [dilindungi e-mel]".$ nl;
$ pengepala .= "Jenis Kandungan: multipart / campuran; sempadan =" " . $ pemisah . "" " .$ nl;
// Hantar e-mel menggunakan fungsi mel mesej ()
jika (mel ($ ke, $ subjek, $ mesej, $ tajuk))
echo "E-mel berjaya dihantar dengan lampiran.\ r \ n ";

lain
echo "E-mel belum dihantar. \ r \ n ";

?>

Output berikut akan muncul setelah menjalankan skrip dari pelayan web jika fungsi surat () berfungsi dengan baik.


Keluaran berikut akan muncul jika anda memeriksa kotak masuk alamat e-mel yang telah ditetapkan sebagai alamat e-mel penerima.

Kesimpulannya

Terdapat banyak cara dalam PHP untuk menghantar e-mel. Fungsi PHP mail () tidak berfungsi dengan baik di Ubuntu setelah menetapkan konfigurasi. Tutorial ini menunjukkan konfigurasi yang diperlukan dan cara menghantar e-mel menggunakan fungsi PHP mail ().

Cara Menggunakan Xdotool untuk Merangsang Klik dan Penekanan Tetikus di Linux
Xdotool adalah alat baris arahan sumber terbuka dan bebas untuk mensimulasikan klik dan tekan kekunci tetikus. Artikel ini akan merangkumi panduan rin...
5 Produk Tetikus Komputer Ergonomik Teratas untuk Linux
Adakah penggunaan komputer yang berpanjangan menyebabkan rasa sakit di pergelangan tangan atau jari anda? Adakah anda mengalami sendi kaku dan selalu ...
Cara Mengubah Tetapan Tetikus dan Pad Sentuh Menggunakan Xinput di Linux
Sebilangan besar pengedaran Linux dihantar dengan perpustakaan "libinput" secara lalai untuk menangani peristiwa input pada sistem. Ia dapat memproses...