Saya menginstal Ubuntu 11.04, LAMP menggunakan taskel.
Saya menemukan bahwa PHP mail()
tidak berfungsi.
Saya kira saya perlu mengaktifkannya atau sesuatu? Bagaimana cara melakukannya?
Jawaban Terbaik
Dari manual email php:
Persyaratan
Agar fungsi email
tersedia, PHP memerlukan
yang diinstal dan sistem email yang berfungsi. Program
yang akan digunakan ditentukan oleh
pengaturan konfigurasi di file php.ini
.
Ini berarti Anda harus menginstal semacam server surat dan mengkonfigurasi php untuk menggunakannya. Biasanya mailserver ini adalah postfix di Ubuntu. Namun – jika sisi php yang Anda kode akhirnya akan disimpan di sisi layanan hosting (mis. xmission), server email kemungkinan besar sudah diinstal di sana. Dalam hal ini, cukup uji situs Anda secara online, bukan secara lokal.
Jika Anda perlu mengujinya di sistem Anda sendiri atau bermaksud menghostingnya di server rumah Anda sendiri, lanjutkan dengan:
Instalasi Postfix
Instalasi:postfix /
sudo apt-get install postfix
Selama proses, Anda akan ditanya dalam mode mana Anda ingin menginstal postfix. Ada empat kemungkinan mode:
- Internet :Server email Anda sendiri.
- Satelit :Penyedia email eksternal (mis. Google) akan digunakan untuk mengirim dan menerima email. Server tidak akan menerima email apa pun.
- Smarthost :Campuran antara keduanya. Email disimpan secara lokal tetapi dikirim melalui penyedia email eksternal.
- Khusus lokal :Tidak akan perhatian Anda. Itu adalah server surat internal sistem. Anda hanya dapat mengirim email dari pengguna ke pengguna di sistem.
Opsi penginstalan lainnya bergantung pada pilihan Anda untuk konfigurasi umum ini.
Kemungkinan besar Anda akan memilih instalasi satelit. Itu berarti email akan dikirim menggunakan penyedia eksternal. Sebagai smtp-server (server surat keluar), Anda kemudian harus menentukan penyedia Anda smtp. Opsi lainnya sudah cukup jelas.
Konfigurasi Pasca Instalasi
Sebagian besar server smtp memerlukan otentikasi kata sandi untuk mengirim email. Jadi postfix perlu mengetahui kata sandi itu. Juga ada hal-hal seperti enkripsi yang perlu dipertimbangkan (yang harus Anda cari di Google). Ini adalah bagaimana Anda mengkonfigurasi postfix menggunakan otentikasi kata sandi (sasl):
-
Instal libsasl2-modul
dan sasl2-bin
dengan mengeklik ikon Pusat Perangkat Lunak atau dari terminal menggunakan:
sudo apt-get install libsasl2-2 libsasl2-modules sasl2-bin
-
Aktifkan sasl-auth dengan menambahkan baris ini ke
/etc/postfix/main.cf
# add to /etc/postfix/main.cf smtp_sasl_auth_enable = yes smtp_sasl_security_options = noplaintext noanonymous smtp_sasl_password_maps = hash:/etc/postfix/sasl_password
-
Buat file
/etc/postfix/sasl_password
dengan garis seperti:smtp.gmail.com [email protected]:USERPASSWORD
Ganti kata sandi, nama pengguna, dan alamat smtp yang sebenarnya.
-
Perbarui postfix:
sudo chmod 600 /etc/postfix/sasl_password # for safety of your smtp password sudo postmap hash:/etc/postfix/sasl_password sudo postmap /etc/postfix/sender_canonical sudo /etc/init.d/postfix restart
Anda mungkin harus menghindari bug 'izin ditolak' dengan
chown postfix:postfix /etc/postfix
sebelumnya.
Ini harus dilakukan di sebagian besar kasus. Namun beberapa penyedia smtp memerlukan alamat tertentu sebagai pengirim atau enkripsi.
Terkait:PEAR::Antarmuka email mungkin juga menarik bagi Anda.
Gmail (dan mungkin layanan lain) mungkin tidak suka bahwa Anda mencoba mengirim email dengan cara ini karena dapat dianggap tidak aman menurut standar mereka, dan akan memblokir upaya Anda yaitu tidak ada yang akan terjadi di layar atau di suatu tempat dari keseluruhan proses akan memblokir otentikasi Anda. POP3 Anda juga harus diaktifkan.
Untuk mengatasi itu lihat di sini. (Jika Anda ingin aman, buat akun Gmail palsu)