Masalah
Email yang dikirim dari formmail skrip PHP selalu terkirim dobel ke xxx@example.com. Padahal pengiriman hanya dilakukan sekali.
Contoh skrip:
<?
$to = "xxx@example.com";
$company = "Company";
$name = "Name";
$email = "Email";
$phone = "Phone";
$country = "Country";
$subject = "Subject";
$message = "Message";
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "To: User <xxx@example.com>\r\n";
$headers .= "From: User 2 <xxx@from-example.com>\r\n";
$body = "Company : $company"
. "Name : $name"
. "Phone : $phone"
. "Email : $email"
. "Country : $country"
. "Message : $message";
mail ( $to, $subject, $body, $headers );
echo "test mail";
?>
Solusi
Perhatikan baris yang tercetak tebal di atas, diulang di sini:
$headers .= "To: User <xxx@example.com>\r\n";
Di $headers tidak usah ada header To: … lagi. Karena header “To: …” ini nanti akan dimasukkan/digenerate oleh PHP ke dalam header akhir, dengan menggunakan nilai To dari argumen pertama fungsi mail().
Jadi solusi untuk memperbaiki skrip di atas adalah menghapus baris yang tidak perlu tadi.