Di halaman iniCara WordPress mengirim email secara default
Situs WordPress mengirim lebih banyak email daripada yang diperkirakan pemiliknya. Notifikasi formulir kontak. Pengaturan ulang kata sandi. Sambutan untuk pengguna baru, peringatan moderasi komentar, dan di toko, setiap konfirmasi pesanan, invoice, serta pembaruan pengiriman dari WooCommerce. Sebagian besar email ini tidak dirancang secara khusus, dan tidak ada yang memeriksanya sampai pelanggan mengabarkan bahwa email pesanan tidak pernah sampai.
Ketika salah satu email ini masuk ke spam, periksa bagaimana pesan keluar dari server sebelum Anda mengubah kata-katanya. Secara default, WordPress menggunakan opsi dengan keterkiriman paling rendah untuk bagian tersebut.
Cara WordPress mengirim email secara default
WordPress dan hampir setiap plugin yang mengirim email, termasuk WooCommerce dan plugin formulir, menggunakan satu fungsi, wp_mail(). Fungsi ini menyerahkan pesan ke PHPMailer, yang secara default meneruskannya ke mail() milik PHP, lalu menyerahkannya ke program email yang tersedia di server hosting. Tidak ada login ke penyedia email, tidak ada penandatanganan, dan tidak ada apa pun di DNS Anda yang menyatakan bahwa server ini boleh mengirim email untuk domain Anda.
Alamat pengirim yang dipilih adalah wordpress@ diikuti domain situs Anda (WordPress menghapus awalan www.). Jika Anda tidak pernah mengubahnya, alamat itulah yang dilihat pelanggan pada baris From, dan di banyak situs tidak ada yang pernah membuat kotak surat tersebut.
Pada hosting bersama, pesan kemudian dikirim dari server hosting melalui alamat IP yang digunakan bersama oleh banyak situs lain. Jika salah satunya mengirim email ke daftar yang dibeli, atau diretas dan mulai mengirim spam dalam jumlah besar, alamat IP tersebut mendapat reputasi buruk, sementara email pengaturan ulang kata sandi Anda dikirim dari alamat yang sama seperti email mereka.
Jadi, instalasi WordPress default mengirim email dengan SPF yang tidak selaras dengan domain Anda. Alamat bounce biasanya tetap menggunakan nama server milik penyedia hosting, dan jika alamat Anda justru digunakan di sana, SPF langsung gagal. Tidak ada tanda tangan DKIM untuk domain Anda, sehingga DMARC juga gagal. Gmail dan Yahoo menetapkan aturan pengirim mereka pada Februari 2024. Microsoft melakukan hal yang sama pada Mei 2025 untuk domain yang mengirim lebih dari 5.000 pesan per hari ke Outlook.com. Sejak November 2025, Gmail telah menolak lebih banyak email yang melanggar aturannya, alih-alih memasukkannya ke folder spam.
Kirim melalui layanan email yang sebenarnya
Perbaikan terpenting adalah berhenti menggunakan mail(). Instal plugin SMTP (WP Mail SMTP, FluentSMTP, dan Post SMTP adalah pilihan yang umum, dan masing-masing memiliki versi gratis), lalu hubungkan ke layanan yang mengirim email dengan benar: penyedia mailbox Anda sendiri, seperti Google Workspace atau Microsoft 365, atau layanan transaksional seperti Amazon SES, Brevo, SendGrid, atau Mailgun.
Plugin tersebut mengganti mekanisme pengiriman di bawah wp_mail(), sehingga setiap email dari setiap plugin dikirim melalui cara baru tanpa perlu mengubah plugin itu sendiri. Gunakan opsi API penyedia jika tersedia di plugin, bukan SMTP biasa dengan kata sandi. WP Mail SMTP menjelaskan bahwa jalur API tetap berfungsi meskipun hosting Anda memblokir port SMTP.
Bagian berikutnya sering dilewatkan. Autentikasikan domain di penyedia tersebut: masing-masing memberikan data DNS yang perlu Anda publikasikan, biasanya dua atau tiga data CNAME untuk DKIM dan SPF include atau domain return-path khusus. Sampai data tersebut ditambahkan ke DNS Anda, penyedia akan menggunakan namanya sendiri pada tanda tangan, dan DMARC akan gagal seperti saat email dikirim melalui hosting.
Alamat From pada formulir kontak
Plugin formulir, termasuk Contact Form 7 dan WPForms, memungkinkan Anda memilih isi baris From pada notifikasi yang Anda terima. Banyak konfigurasi mencantumkan alamat pengunjung di sana agar Anda dapat membalas pengunjung dengan menekan Reply. Ini terlihat cerdas, tetapi justru hal seperti inilah yang dirancang untuk dihentikan oleh DMARC.
Misalnya, pengunjung bernama Anna menulis dari anna@yahoo.com. Situs Anda kemudian mengirim pesan yang mengaku berasal dari yahoo.com melalui server yang tidak pernah diberi otorisasi oleh Yahoo. yahoo.com menerbitkan kebijakan DMARC p=reject, sehingga penerima yang mematuhinya akan menolak notifikasi tersebut karena dianggap dipalsukan. Untuk pengunjung Gmail, kebijakannya lebih longgar dan pesan lebih sering masuk ke spam. WPForms memperingatkan hal ini secara khusus dalam dokumentasinya.From adalah Anda, Reply-To adalah pengunjung
Sebagai gantinya, atur seperti ini:
- From: alamat di domain Anda sendiri, seperti
forms@yourdomain.com, dengan domain yang sama dengan yang digunakan untuk autentikasi plugin SMTP Anda. - Reply-To: alamat pengunjung dari kolom formulir. Menekan Reply tetap akan mengirim balasan kepada Anna.
- To: mailbox yang benar-benar Anda baca.
Di Contact Form 7, pengaturan ini berada di tab Mail: masukkan alamat Anda sendiri di From dan tambahkan Reply-To: [your-email] di bagian Additional headers. Plugin formulir lain memiliki kolom Reply-To di pengaturan notifikasinya.
Email WooCommerce
WooCommerce memiliki pengaturan pengirim sendiri: WooCommerce, lalu Settings, lalu Emails, di bagian Email Sender Options, dengan nama "From" dan alamat "From". Secara default, alamatnya adalah email admin situs. Jika orang yang memasang toko menggunakan alamat Gmail untuk email tersebut, setiap konfirmasi pesanan akan dikirim dengan menyatakan berasal dari gmail.com, dan gagal dalam pemeriksaan DMARC karena alasan yang sama seperti formulir kontak di atas. Masukkan alamat dari domain Anda yang sudah diautentikasi; nama toko cocok digunakan sebagai nama pengirim. (Untuk notifikasi pesanan yang dikirim kepada Anda, WooCommerce sudah mencantumkan pelanggan di Reply-To, dan itu cara yang benar.)
Ada dua masalah pada email toko yang tidak terjadi pada formulir kontak.
Yang pertama adalah volume. Promo atau plugin newsletter yang mengirim email kepada pelanggan melalui jalur yang sama dengan konfirmasi pesanan akan mencampurkan email pemasaran dan transaksional dalam satu reputasi. Jika newsletter menerima keluhan, email tanda terima juga terdampak. Mengirim keduanya melalui layanan yang berbeda membuatnya tetap terpisah, dan subdomain terpisah untuk pemasaran sedikit membantu, meskipun penerima tetap mempertimbangkan reputasi domain utama.
Yang kedua adalah soal berhenti berlangganan. Konfirmasi pesanan dan pengaturan ulang kata sandi bersifat transaksional, dan aturan berhenti berlangganan sekali klik dari Gmail dan Yahoo tidak berlaku untuk email tersebut. Permintaan ulasan, pengingat keranjang yang ditinggalkan, atau email "Anda mungkin juga menyukai" yang dikirim kepada pembeli sebelumnya adalah pemasaran. Jika Anda mengirimkannya dalam volume besar, aturan tersebut berlaku sepenuhnya, yang berarti harus ada header List-Unsubscribe dengan opsi sekali klik. Periksa apakah add-on yang mengirimkannya menambahkan header tersebut; pengujian di bawah akan menunjukkannya dalam kedua kondisi.
Sisi DNS, secara sederhana
Apa pun layanan yang Anda gunakan untuk mengirim, domain Anda memerlukan tiga hal di DNS agar email dipercaya. Panduan lengkap tersedia di penjelasan SPF, DKIM, dan DMARC. Berikut artinya untuk situs WordPress.
- SPF. Satu catatan TXT di domain Anda yang mencantumkan pihak yang boleh mengirim atas nama domain tersebut. Banyak layanan pengiriman tidak memerlukan perubahan di sini karena melakukan penyelarasan melalui domain bounce mereka sendiri. Jika layanan Anda meminta
include:dan domain tersebut sudah memiliki catatan untuk penyedia mailbox Anda, tambahkan ke catatan itu. Jangan membuat catatan kedua. Dua catatan SPF merupakan kesalahan dan keduanya akan berhenti berfungsi. Periksa hasilnya dengan pemeriksa SPF. - DKIM. Catatan yang diberikan oleh layanan pengiriman Anda. Setelah aktif, layanan tersebut menandatangani setiap pesan dengan domain Anda, dan tanda tangan inilah yang dicari DMARC.
- DMARC. Catatan TXT di
_dmarc.yourdomain.com. Mulailah denganv=DMARC1; p=none; rua=mailto:dan alamat yang Anda baca, lalu perketat kebijakannya ketika laporan menunjukkan bahwa tidak ada email Anda yang gagal. Pemeriksa DMARC membaca konfigurasi yang Anda miliki.
Perlu diingat bahwa server hosting mungkin masih mengirim sesuatu secara langsung, misalnya tugas cron atau plugin lama yang memanggil mail() secara langsung, bukan wp_mail(). Pesan tersebut melewati plugin SMTP, dan laporan DMARC akan menampilkannya sebagai sumber yang tidak Anda perkirakan.
Menguji email sebenarnya, bukan pesan uji
Setiap plugin SMTP memiliki tombol "send test email", dan itu hanya membuktikan bahwa koneksi berfungsi. Tombol tersebut tidak menampilkan konfirmasi pesanan sebagaimana dibuat oleh WooCommerce, notifikasi formulir beserta Reply-To-nya, atau email pengaturan ulang kata sandi beserta tautan yang disisipkan WordPress.
Jadi, saya meminta WordPress mengirim email yang sebenarnya. Alamat uji dari halaman utama menerima satu pesan, jadi gunakan alamat baru untuk setiap email yang ingin Anda periksa. Untuk formulir, masukkan alamat tersebut sebagai penerima notifikasi untuk sementara, lalu kirim formulir. Untuk WooCommerce, buat pesanan uji dengan alamat tersebut sebagai email pelanggan. Untuk pengaturan ulang kata sandi, berikan alamat tersebut kepada pengguna uji dan minta pengaturan ulang. Setiap pesan mendapatkan laporannya sendiri, yang mencakup SPF, DKIM, dan DMARC beserta penyelarasannya, 21 daftar blokir, konten dan tautan, serta aturan pengirim massal. Untuk mengetahui folder tujuan di Gmail, Outlook, Yahoo, dan penyedia lain, pesan yang sama harus dikirim ke sejumlah inbox dengan penanda pada subjek. Formulir atau pesanan toko tidak dapat melakukannya, jadi lakukan bagian tersebut untuk email yang Anda kirim sendiri.
Jika Anda tidak ingin membuat pesanan uji secara manual, plugin WordPress gratis mengirim pesan ini melalui wp_mail() milik situs Anda sendiri, jalur yang sama dengan yang dilalui email pelanggan, lalu menampilkan hasilnya di dashboard. Plugin ini juga mendeteksi ketika situs mulai mengirim jenis email yang belum pernah dilihat sebelumnya.
Jika email masih masuk ke spam
Jika autentikasi berhasil, alamat From menggunakan domain Anda, tetapi email masih masuk ke spam, periksa reputasi infrastruktur yang digunakan untuk mengirim. IP hosting bersama yang masuk daftar blokir adalah penyebab umum jika Anda masih menggunakan mail(), dan pemeriksa daftar blokir akan menunjukkannya. Konten berpengaruh lebih kecil daripada yang diperkirakan banyak orang. Notifikasi formulir dengan satu tautan dan tiga baris teks jarang memicu filter dengan sendirinya. Namun, email WooCommerce dengan templat HTML yang berat, satu gambar besar, dan penyingkat tautan dapat memicunya.
Periksa satu pesan, perbaiki masalah yang ditampilkan dalam laporan, lalu kirim lagi ke alamat baru.