---
title: "Kenapa Formulir Kontak WordPress Tidak Mengirim Email?"
description: "Formulir kontak WordPress tampak berhasil, tapi email tak pernah masuk? Kenali penyebabnya, dari fungsi mail() PHP sampai alamat From, dan solusi SMTP."
url: "https://nivelva.com/insight/formulir-kontak-wordpress-tidak-mengirim-email"
category: "Website \u0026 Domain"
tags: ["wordpress","formulir kontak","smtp","wp mail","contact form 7"]
author: "Theresia Candiawan"
published: "2026-11-07T14:03:00+07:00"
updated: "2026-11-07T14:03:00+07:00"
language: "id"
publisher: "Nivelva (https://nivelva.com)"
---

# Kenapa Formulir Kontak WordPress Tidak Mengirim Email?

> **Jawaban singkat:** Secara bawaan WordPress mengirim email lewat fungsi mail() PHP tanpa login SMTP, sehingga mudah ditolak atau masuk spam. Penyebab lain adalah alamat From yang bukan domain sendiri serta SPF atau DKIM yang belum diatur. Solusi paling andal adalah plugin SMTP dengan email domain sendiri.

Jawaban singkatnya: WordPress secara bawaan mengirim email lewat fungsi `mail()` milik PHP, tanpa login ke server email. Email seperti ini mudah ditolak, tertahan, atau masuk spam, apalagi bila alamat pengirimnya tidak cocok dengan domain website.

Kenapa ini penting? Formulir kontak sering menjadi pintu utama calon pelanggan. Pengunjung melihat pesan "Terima kasih, pesan sudah terkirim", lalu menunggu balasan yang tidak pernah datang karena pesannya tidak pernah sampai ke kotak masukmu. Kamu kehilangan prospek tanpa pernah tahu.

## Bagaimana WordPress mengirim email?

Semua email dari WordPress, baik dari formulir kontak, WooCommerce, maupun reset password, lewat fungsi `wp_mail()`. Fungsi ini memakai pustaka PHPMailer, dan bila tidak diatur lain, mengirim memakai fungsi `mail()` PHP di server hosting.

Masalahnya, `mail()` menyerahkan email ke program pengirim lokal di server tanpa autentikasi akun. Hasilnya sangat bergantung pada konfigurasi hosting. Di sebagian server berjalan lancar, di server lain diblokir, dibatasi, atau email keluar tanpa tanda tangan DKIM sehingga dicurigai penerima.

## Penyebab yang paling sering ditemukan

- **Fungsi `mail()` dibatasi atau dimatikan.** Sebagian hosting dan banyak VPS tidak menjalankan layanan pengirim email lokal, atau sengaja mematikannya untuk mencegah spam.
- **Alamat From memakai email pengunjung.** Formulir diatur agar email "dari" alamat Gmail pengunjung. Server penerima melihat email dari domain gmail.com yang dikirim server lain, sehingga gagal pemeriksaan SPF dan DMARC.
- **Alamat From memakai domain yang tidak ada akunnya.** Misalnya `wordpress@domainkamu.com` yang tidak pernah dibuat, atau alamat yang tidak tercakup SPF.
- **SPF, DKIM, atau DMARC domain belum diatur.** Panduannya ada di [SPF, DKIM, DMARC agar email tidak masuk spam](https://nivelva.com/insight/spf-dkim-dmarc).
- **Email penerima ada di layanan lain.** Website di hosting A, email kantor di layanan B. Server hosting kadang menganggap domain itu lokal dan mencoba mengantarkan ke kotak surat di server sendiri, bukan ke server email yang sebenarnya.
- **Batas kirim hosting terlampaui**, misalnya karena formulir dibanjiri spam bot.
- **Salah ketik alamat tujuan** di pengaturan plugin formulir.

## Bagaimana cara memastikan sumber masalahnya?

Lakukan pengecekan berurutan agar tidak menebak-nebak:

1. Periksa folder Spam di kotak masuk tujuan, termasuk karantina bila memakai email perusahaan.
2. Coba fitur **Lupa password** di halaman login WordPress dengan akun admin. Kalau email reset juga tidak datang, masalahnya ada di pengiriman email WordPress secara umum, bukan di plugin formulir.
3. Pasang plugin pencatat email (email log) untuk melihat apakah WordPress benar-benar mencoba mengirim, dan apakah ada pesan error.
4. Periksa pengaturan formulir: alamat tujuan, alamat From, dan Reply-To.
5. Tanyakan ke penyedia hosting apakah fungsi `mail()` diizinkan dan berapa batas kirim per jamnya.

## Solusi paling andal: kirim lewat SMTP

Cara yang paling banyak direkomendasikan adalah membuat WordPress mengirim email lewat SMTP dengan login akun, persis seperti aplikasi email di laptop. Caranya dengan memasang plugin SMTP seperti WP Mail SMTP, FluentSMTP, atau Post SMTP, lalu mengisi data server.

| Pengaturan | Isi yang disarankan |
|:--|:--|
| From email | Alamat nyata di domain sendiri, misalnya website@domainkamu.com |
| From name | Nama usaha atau "Formulir Website" |
| SMTP host | Server email dari penyedia email atau hosting |
| Port dan enkripsi | 465 dengan SSL/TLS, atau 587 dengan TLS/STARTTLS |
| Autentikasi | Aktif, username alamat email lengkap dan password-nya |
| Reply-To di formulir | Alamat email pengunjung, agar tombol balas langsung ke mereka |

Kunci utamanya ada di kombinasi **From** dan **Reply-To**. Alamat From selalu memakai email di domainmu sendiri, sedangkan email pengunjung diletakkan di Reply-To. Dokumentasi Contact Form 7 juga menganjurkan pola ini. Hasilnya, email lolos autentikasi dan kamu tetap bisa membalas pengunjung dengan sekali klik.

Bila port SMTP keluar diblokir oleh hosting atau VPS, gunakan port lain yang diizinkan atau layanan SMTP relay. Penjelasan tiap port ada di [port SMTP 25, 465, dan 587](https://nivelva.com/insight/port-smtp-25-465-587-bedanya).

> **Buat akun khusus untuk website:**
>
> Buat satu akun email khusus, misalnya website@domainkamu.com, hanya untuk pengiriman dari WordPress. Kalau password perlu diganti atau akun dibatasi, email kerja tim tidak ikut terganggu.

## Langkah lanjutan setelah SMTP terpasang

- **Kirim email uji** dari menu plugin SMTP. Hampir semua plugin punya fitur ini dan menampilkan pesan error bila gagal.
- **Isi formulir dari perangkat lain** dan cek apakah email masuk ke Inbox, bukan Spam.
- **Pasang perlindungan spam** seperti CAPTCHA atau honeypot di formulir agar kuota kirim tidak habis oleh bot.
- **Simpan entri formulir di database** bila plugin formulirmu mendukung. Kalau suatu hari email gagal, pesan pengunjung tetap tersimpan.

## Bagaimana kalau website ada di VPS?

Di VPS, situasinya sedikit berbeda. Banyak image sistem operasi tidak memasang layanan pengirim email (seperti Postfix) secara bawaan, sehingga fungsi `mail()` gagal tanpa pesan yang jelas. Sebagian penyedia cloud juga menutup port 25 keluar untuk mencegah penyalahgunaan.

Memasang server email sendiri di VPS hanya untuk formulir kontak biasanya tidak sepadan. Kamu harus mengurus reverse DNS, SPF, DKIM, reputasi IP, dan pembaruan keamanan. Cara yang lebih praktis tetap sama: pasang plugin SMTP dan arahkan ke server email yang sudah ada, baik email hosting, layanan email bisnis, maupun SMTP relay. Untuk aplikasi di luar WordPress, prinsipnya juga berlaku: kirim lewat SMTP dengan login, bukan lewat program pengirim lokal.

Plugin lain yang membantu website bisnis bisa dilihat di [plugin WordPress wajib untuk website bisnis](https://nivelva.com/insight/plugin-wordpress-wajib-bisnis).

## Pertanyaan yang sering diajukan

### Apakah boleh memakai akun Gmail pribadi sebagai SMTP WordPress?

Secara teknis bisa lewat sandi aplikasi atau OAuth, tetapi alamat From tetap gmail.com dan ada batas kirim harian akun pribadi. Untuk website bisnis, lebih rapi memakai email domain sendiri.

### Kenapa email reset password masuk, tapi email formulir tidak?

Biasanya karena pengaturan From di plugin formulir berbeda, misalnya memakai email pengunjung. Samakan From dengan alamat domain sendiri dan pindahkan email pengunjung ke Reply-To.

### Apakah WooCommerce juga terpengaruh?

Ya. Email pesanan WooCommerce juga lewat wp_mail(), jadi plugin SMTP memperbaiki formulir kontak dan email toko sekaligus.

## Sumber

- <https://developer.wordpress.org/reference/functions/wp_mail/>
- <https://contactform7.com/best-practice-to-set-up-mail/>

---

Diterbitkan oleh Nivelva Insight (https://nivelva.com/insight/). Artikel ini: https://nivelva.com/insight/formulir-kontak-wordpress-tidak-mengirim-email
Kontak Nivelva: WhatsApp https://wa.me/6285111245007, email hello@nivelva.com
