Mengapa php tidak mengirim email?

Baru-baru ini, saya telah melakukan beberapa pekerjaan untuk klien dengan masalah aneh. formulir kontak di situs web mereka [sebut saja client-website.com] — yang mengirimkan pertanyaan formulir lengkap menggunakan fungsi mail[] PHP — tidak dapat mengirim email melalui alamat email yang berisi domain mereka sendiri

Artinya, jika kami menyetel formulir untuk mengirimkan pertanyaan ke alamat seperti hello@client-website.com, email tersebut akan benar-benar dihapus — Anda tidak akan menemukannya di folder sampah atau spam, atau menemukan jejak email apa pun di admin mereka dan . Jika kami mengirimkan email ke alamat email pribadi kami sendiri [mis. g. personal@gmail.com], atau ke email dari domain lain [mis. g. mail@terresquall.com_], maka email akan masuk [dan melewati folder spam juga]

Selama berminggu-minggu, masalah ini membingungkan saya, sampai sekarang… dan ini sebenarnya perbaikan yang sangat sederhana

Pengaturan web dan email klien

Untuk memahami mengapa hal ini terjadi, pertama-tama kita perlu memahami bagaimana situs web klien dan layanan email disiapkan. Pada dasarnya

  1. Layanan web mereka [mis. e. HTTP dan HTTPS] disediakan oleh server hosting massal. Server ini menjalankan situs web, jadi server inilah yang berfungsi saat Anda mengunjungi situs web mereka di client-website.com
  2. Layanan surat mereka [mis. e. untuk saat Anda mengirim email ke domain mereka] disediakan oleh Google Workspace, sehingga data MX untuk domain mereka diarahkan ke server SMTP Google

Inilah tangkapannya. Server yang menyediakan layanan web mereka juga menyediakan layanan email, seperti banyak layanan hosting massal. Namun, karena data MX mereka tidak diarahkan ke server ini, server tersebut tidak menerima email domain apa pun

Menemukan masalah

Selama berminggu-minggu, tidak terpikir oleh saya bahwa tangkapan yang disebutkan di atas bisa menjadi penyebab masalah. Saya salah yakin bahwa Google Workspace pasti menolak email yang dikirim dari formulir kontak sebagai spam karena ada yang salah disiapkan, seperti data SPF domain. Namun, jika email ini ditolak, log email Google Workspace seharusnya tetap menunjukkan hal ini, dan tidak

Ini berarti bahwa email sama sekali tidak dikirim oleh server web. Itu bisa mengirim email ke domain lain tanpa masalah, tetapi tidak bisa mengirim email ke domainnya sendiri

Masalahnya, ternyata, adalah kebijakan perutean email server web — karena server web juga dikonfigurasi sebagai server surat untuk client-website.com, ia menganggap dirinya sebagai server surat untuk domain client-website.com. Ini berarti bahwa itu merutekan semua email ke domain ke kotak surat di bawah layanan suratnya sendiri. Lebih singkatnya, kita juga dapat mengatakan bahwa server merutekan email domain secara lokal

Memperbaiki masalah

Setelah masalah diidentifikasi, memperbaikinya sederhana. Cara khusus akan bergantung pada antarmuka kontrol server yang disediakan oleh layanan hosting massal Anda. Di sini, saya mencantumkan perbaikan untuk 2 platform

  1. , dan;

Artikel berlanjut setelah iklan

Plesk

Jika penyedia hosting Anda menggunakan Plesk, yang ingin Anda lakukan adalah menonaktifkan layanan email pada domain yang disediakan oleh penyedia hosting Anda untuk layanan web

Setelah Anda masuk, temukan domain yang relevan di bawah tab Situs Web dan Domain Anda, dan akses halaman Pengaturan Surat

Saat berada di tab Situs Web dan Domain, klik Pengaturan Surat

Kemudian, di halaman Pengaturan Surat, batalkan pilihan kotak centang Aktifkan layanan email di domain ini, dan klik tombol Terapkan untuk menyimpan perubahan ini. Ini akan menghentikan server merutekan email kembali ke kotak suratnya sendiri

Catatan. Bergantung pada bagaimana penyedia hosting Anda mengonfigurasi server mereka, mungkin perlu beberapa saat untuk memperbarui pengaturan ini, jadi berikan waktu untuk melihat apakah ini memperbaiki masalah keterkiriman. Ingat juga untuk memeriksa folder spam atau sampah Anda setelah melakukan perubahan ini jika email Anda masih hilang

Ingatlah untuk mengklik Terapkan setelah menghapus centang pada kotak centang Aktifkan layanan email di domain ini

cPanel

Jika penyedia hosting Anda menggunakan cPanel, Anda perlu menginstruksikan cPanel untuk menggunakan Remote Mail Exchanger untuk merutekan email, sehingga tidak akan merutekan email secara lokal

Untuk sampai ke halaman di mana Anda dapat mengubahnya, Anda perlu menemukan item Perutean Email di halaman beranda cPanel Anda setelah masuk

Jika Anda tidak dapat menemukan ikonnya, itu berarti penyedia hosting Anda tidak mengizinkan Anda untuk mengubahnya, atau paket hosting Anda tidak menyediakan layanan email

Setelah berada di halaman Perutean Email, pilih opsi Penukar Surat Jarak Jauh, dan klik Ubah untuk menyimpan pengaturan Anda

Catatan. Bergantung pada bagaimana penyedia hosting Anda mengonfigurasi server mereka, mungkin perlu beberapa saat untuk memperbarui pengaturan ini, jadi berikan waktu untuk melihat apakah ini memperbaiki masalah keterkiriman. Ingat juga untuk memeriksa folder spam atau sampah Anda setelah melakukan perubahan ini jika email Anda masih hilang

Ingatlah untuk mengklik tombol Ubah untuk menyimpan perubahan setelah memperbarui pengaturan Anda

Kesimpulan

Setelah pengaturan Anda diperbarui, host web Anda harus berhenti merutekan email dari PHP mail[] [serta email lain yang dikirimnya berasal dari domain yang mengidentifikasi dirinya] kembali ke kotak suratnya sendiri

Beri tahu kami jika artikel ini bermanfaat bagi Anda, atau jika kami membuat kesalahan dengan informasi atau petunjuk kami di atas

Jika Anda memerlukan bantuan teknis lebih dari yang kami miliki dalam artikel ini untuk situs web atau organisasi Anda, jangan ragu untuk menghubungi kami juga — kami menyediakan dukungan web dan hosting email sebagai bagian dari penawaran layanan kami, dan mungkin hanya memiliki apa yang Anda butuhkan

Bagaimana cara mengirim email dengan PHP?

Menggunakan fungsi PHP mail[] . Fungsi mail[] bawaan PHP adalah salah satu cara paling sederhana untuk mengirim email langsung dari server web itu sendiri. Hanya dibutuhkan tiga parameter wajib. alamat email, subjek email, dan isi pesan—dan mengirimkannya ke penerima.

Bagaimana saya tahu jika surat PHP berfungsi?

untuk memeriksa apakah mengirim email sebagaimana dimaksud; . com"; $subject = "Email Test"; $message = "ini adalah fungsi email testing email di server"; $sendMail = mail[$email, $subject, $message]; if[$sendMail] { echo "Email Sent Successfully"; } else { echo "Mail Failed"; } ?>

Mengapa surat PHP memakan waktu begitu lama?

Pengiriman email SMTP [yang dikirimkan oleh PHP ke pesan] yang memakan waktu . Kemungkinan, penundaan yang Anda lihat adalah daftar abu-abu di server penerima, yang berarti bahwa server surat penerima menolak untuk menerima pesan sampai server pengirim [yang diserahkan oleh skrip PHP Anda] mencoba beberapa kali.

Bagaimana cara mengirim email menggunakan PHP SMTP?

Menulis Kode PHP untuk Mengirim Email Menggunakan SMTP Gmail .
Langkah 1. Unduh pustaka PHPMailer dari tautan github ini. .
Langkah 2. Menulis Kode PHP untuk membuat koneksi SMTP. .
Langkah 3. Sertakan paket dan file untuk protokol PHPMailer dan SMTP. .
Langkah 4. Inisialisasi PHP Mailer dan atur SMTP sebagai protokol surat

Bagaimana cara mengaktifkan fungsi email di PHP?

Mengubah php. .
Buka php.ini Anda. file ini menggunakan di bawah ini. .
Cari [fungsi email] di file. .
Tambahkan detail server email Anda ke file atau jika Anda memilikinya, Anda dapat mengubahnya [server email dapat menjadi milik Anda sendiri, mis. .
Simpan/tutup file php.ini. file ini

Bài mới nhất

Chủ Đề