PHP Kirim Email dengan Fungsi mail()

Mengirim email adalah fitur umum di aplikasi web — untuk verifikasi akun, reset password, atau notifikasi. PHP menyediakan fungsi bawaan untuk PHP Kirim Email, namun ada beberapa hal penting agar email benar-benar sampai dan tidak masuk folder spam.

Fungsi mail() Bawaan

Cara paling sederhana adalah fungsi mail(), yang menerima penerima, subjek, isi, dan header:

<?php
$ke = "penerima@contoh.com";
$subjek = "Halo dari Situs Saya";
$isi = "Ini adalah email percobaan.";
$header = "From: noreply@situsku.com";

if (mail($ke, $subjek, $isi, $header)) {
    echo "Email terkirim";
} else {
    echo "Gagal mengirim";
}
?>

Mengirim Email Berformat HTML

Secara default email dikirim sebagai teks biasa. Untuk email berformat HTML (dengan gambar dan tautan), tambahkan header Content-Type:

<?php
$header  = "MIME-Version: 1.0\r\n";
$header .= "Content-Type: text/html; charset=UTF-8\r\n";
$header .= "From: noreply@situsku.com\r\n";

$isi = "<h1>Selamat Datang</h1><p>Terima kasih telah mendaftar.</p>";
mail($ke, "Pendaftaran Berhasil", $isi, $header);
?>

Masalah Utama: Email Masuk Spam

Inilah kelemahan terbesar mail(): email yang dikirim sering ditolak atau masuk folder spam. Penyebabnya, fungsi ini mengirim langsung dari server tanpa autentikasi yang meyakinkan penyedia email penerima.

Solusi: Gunakan SMTP

Untuk pengiriman yang andal, kirimlah email melalui server SMTP terautentikasi (seperti Gmail, Brevo, atau Mailgun) menggunakan pustaka PHPMailer:

<?php
use PHPMailer\PHPMailer\PHPMailer;
require 'vendor/autoload.php';

$mail = new PHPMailer(true);
$mail->isSMTP();
$mail->Host = 'smtp-relay.brevo.com';
$mail->SMTPAuth = true;
$mail->Username = 'akun_smtp';
$mail->Password = 'sandi_smtp';
$mail->Port = 587;

$mail->setFrom('noreply@situsku.com', 'Situs Saya');
$mail->addAddress('penerima@contoh.com');
$mail->Subject = 'Halo';
$mail->Body = 'Isi email';
$mail->send();
?>

Dengan SMTP, email dikirim melalui server resmi yang tepercaya, sehingga tingkat keterkiriman jauh lebih tinggi.

Kesalahan Umum

  • Mengandalkan mail() untuk produksi, lalu heran email tidak sampai.
  • Alamat pengirim tidak valid, membuat email langsung ditolak.

Kesimpulan

Fungsi mail() cukup untuk uji coba, tetapi untuk PHP Kirim Email yang andal di lingkungan produksi, gunakan SMTP melalui PHPMailer. Dengan begitu, email penting seperti verifikasi dan reset password akan benar-benar sampai ke kotak masuk pengguna.

Referensi: untuk penjelasan lebih mendalam, kunjungi dokumentasi resmi PHP (php.net).

Baca Juga

Ali Akbar

Software Developer yang fokus mengembangkan aplikasi berbasis Web dan Desktop. Senang mempelajari teknologi baru terutama di bidang web design dan web development.

View all posts by Ali Akbar →

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *