E-mel pemberitahuan pesanan baharu tidak sampai ke peti masuk Gmail pentadbir (bukan masuk spam, cuma tidak tiba langsung), dan yang mengecewakan ialah fungsi wp_mail() WordPress sendiri secara konsisten melaporkan kejayaan setiap kali, yang menolak suspek biasa: panggilan fungsi mel yang rosak, konflik plugin atau gangguan pelayan.
Mengapa “ia kata sudah dihantar” tidak bermaksud “ia sudah sampai”
wp_mail() yang melaporkan true hanya mengesahkan bahawa mesej berjaya diserahkan kepada pengangkutan mel tempatan pelayan untuk dihantar; ia tidak mengatakan apa-apa tentang apa yang berlaku selepas itu, termasuk sama ada pelayan mel penerima (Gmail, dalam kes ini) benar-benar menerimanya atau membuangnya secara senyap.
Pengepala yang menyembunyikan masalah sebenar
Punca sebenar terletak pada pengepala mesej: alamat “From” yang dikonfigurasi WooCommerce ialah e-mel @gmail.com, sedangkan mesej itu secara fizikal dihantar oleh pengangkutan mel pelayan hosting sendiri, bukan oleh Google. Rekod SPF (Sender Policy Framework) Gmail hanya membenarkan infrastruktur Google sendiri menghantar mel yang mendakwa datang daripada alamat @gmail.com. Mesej yang mendakwa daripada Gmail tetapi berasal dari pelayan lain gagal semakan itu terus, dan pertahanan spam Gmail menganggap SPF yang gagal pada mesej yang menyamar sebagai salah satu alamat mereka sendiri sebagai isyarat penyamaran yang kuat, terutamanya apabila penerima juga alamat Gmail.
Hasilnya: mesej itu dibuang atau ditapis sebagai spam secara senyap jauh sebelum sampai ke mana-mana peti masuk, dan itulah sebabnya ia tidak muncul walaupun dalam spam.
Penyelesaian satu baris
Domain kedai itu sendiri sudah mempunyai rekod SPF yang sah, membenarkan pelayan mel penyedia hostingnya; ia cuma tidak digunakan kerana alamat “From” menghala ke Gmail. Menukar alamat “From” e-mel WooCommerce kepada domain yang benar-benar dibenarkan untuk pelayan penghantar (orders@[storedomain].com) menyelesaikannya serta-merta: e-mel pesanan ujian sampai ke peti masuk dalam masa seminit, tanpa plugin baharu, tanpa geganti SMTP dan tanpa perubahan DNS.
Pengajaran utama
- “Fungsi mengembalikan kejayaan” dan “e-mel telah dihantar” ialah dua dakwaan berbeza; mendiagnosis kebolehhantaran memerlukan semakan pengesahan, bukan hanya panggilan penghantaran.
- Menggunakan alamat Gmail sebagai pengepala “From” apabila mesej tidak benar-benar berasal dari pelayan Google hampir pasti akan gagal SPF dan ditapis secara senyap.
- Semak rekod SPF sedia ada domain sebelum mencapai plugin SMTP baharu; selalunya kebenaran sudah wujud dan cuma tidak digunakan.
Bacaan berkaitan: apa yang sebenarnya diliputi penyelenggaraan laman web, ralat 403 berselang-seli akibat TTL cache.
Menghadapi had yang serupa dalam panel WooCommerce atau WordPress anda sendiri? Mari berbincang: ArtinTech Solution membina alat kedai tersuai seperti ini.