Masalah/pertanyaan

Mengapa skrip kirim email (registrasi, form kontak) saya tidak jalan. Pesan kesalahan yang muncul: “Cant send mail: Sender domain (XXX.com) does not belong to user, please use your own domain”.

Jawaban/solusi

Di server hosting berbasis Spanel, demi keamanan terhadap spoofing email/spam, skrip dilarang mengirim email menggunakan sendmail dengan mengeset sembarang From, misalnya sbb di PHP:

mail("[email protected]", "Subjek", "Isi email...", "From: [email protected]\n");

Jika website Anda adalah example.com, maka Anda harus menggunakan From: [email protected] pula (domain yang sama). Karena itu, silakan ubah form mail Anda agar tidak mengirimkan header From sesuai alamat email yang diisikan oleh pengisi form, karena ini amat rentan disalahgunakan oleh spammer. Gunakan From misalnya [email protected] (di mana example.com adalah domain website Anda sendiri). Alamat email si pengisi form dapat Anda taruh di bodi email misalnya.

Joomla (komponen Contact)

Versi yang dicek: 1.5.12

Pada components/com_contact/controller.php, baris 162:

$mail->setSender( array( $email, $name ) );

ganti menjadi:

$mail->setSender( array( $MailFrom, $FromName ) );
$mail->addReplyTo( array( $email, $name ) );

Joomla (komponen D-Mack Recommend Friends)

Matikan variabel konfigurasi admin $dm_mail_from dari 1 menjadi 0 (XXX caranya?)

Tanya jawab

Apa alasan restriksi ini?

Misalnya skrip Anda tereksploit orang, atau ada hacker yang menyusupkan sembarang skrip ke website Anda, maka restriksi ini akan mencegah skrip jahat tersebut mengirimkan email atas nama sembarang domain, @yahoo.com, @google.com, @paypal.com, @citibank.com, @whitehouse.gov, dsb. Melainkan hanya atas nama domain yang ada di akun hosting tersebut saja. Ini berakibat:

  • rata-rata email spam/scam/phishing akan gagal terkirim;
  • jika terkirim, menggunakan domain di akun hosting (dalam contoh ini example.com), maka melacaknya akan lebih mudah;

Tapi saya perlu menggunakan alamat Gmail (Yahoo!Mail, dsb) saya! Dan ini tidak dihosting di akun hosting tersebut!

Pertama-tama, kami menganjurkan Anda menggunakan domain yang sama (example.com), karena mencerminkan websitenya itu sendiri. Ini lebih pantas dan tidak mencurigakan bagi pengunjung website Anda.

Kedua, jika Anda melakukan hal ini karena Anda ingin menampung email jawaban di mailbox @gmail, @yahoo, dsb maka Anda bisa melakukan hal sbb:

  • mengeset header Reply-To ke alamat @gmail/yahoo Anda, sementara From tetap domain website Anda (example.com). Saat orang menerima email ini dan hendak membalasnya, maka alamat yang akan dipakai adalah Reply-To, bukan From.

Contoh untuk melakukan ini di PHP dengan fungsi mail():

mail($alamat_tujuan, $subject, $isi_email, "From: [email protected]\nReply-To: [email protected]\n");
  • membuat akun forwarding dari email domain website Anda ([email protected]) ke alamat @gmail/yahoo Anda.