Saya mencoba mengirim email menggunakan mail()
fungsi php tetapi gagal entah bagaimana, mengeluh bahwa nama domain yang sebenarnya diperlukan. Berikut ini diamati di maillog:
sendmail 4984 r25984: from = apache, size = 273, class = 0, nrcpts = 1, msgid = <201.r25@localhost.localdomain>, relay = apache @ localhost
sendmail 4985 r25985: ruleset = check_mail, arg1 =, relay = mydomain.com [127.0.0.1], reject = 553 5.5.4 ... Nama domain asli diperlukan untuk alamat pengirim
sendmail 4984 r25984: to=external@server.com, ctladdr = apache (48/48), delay = 00: 00:01, xdelay = 00: 00: 00, mailer = relay, pri = 30273, relay = [127.0.0.1] [127.0.0.1], dsn = 5.6.0, stat = Kesalahan format data
sendmail 4984 r25984: r25984: DSN: Kesalahan format data
cron dapat mengirim email ke external@server.com setiap kali ada masalah dengan logrotate. Saya tidak yakin mengapa php tidak dapat melakukannya. Saya mencoba membuat perubahan pada konfigurasi default di `sendmail.mc dengan yang berikut:
MASQUERADE_AS(`mydomain.com')dnl
FEATURE(masquerade_envelope)dnl
FEATURE(masquerade_entire_domain)dnl
MASQUERADE_DOMAIN(localhost)dnl
MASQUERADE_DOMAIN(localhost.localdomain)dnl
MASQUERADE_DOMAIN(mycom)dnl
Tapi, sepertinya itu tidak berpengaruh. Header dari alamat di fungsi email php telah ditetapkan. Saya juga memastikan bahwa SELinux httpd_can_sendmail
diaktifkan. Apa lagi yang harus saya lakukan untuk mengirim surat?
dnl
di depan mereka.
mail()
? Dan, sendmail.mc
ini bukan file konfigurasi yang tepat, file ini harus dikompilasi menjadi sendmail.cf
menggunakan m4
.
sendmail.mc
, mengubah barislocalhost.localdomain
danlocalhost
menjadi sesuatu yang bermakna dan mengkompilasi file mcsendmail.cf
?