Tôi đã cố gắng gửi một email bằng mail()
chức năng php nhưng không thành công bằng cách nào đó, phàn nàn rằng cần phải có một tên miền thực. Sau đây được quan sát trong maillog:
sendmail 4984 r25984: từ = apache, size = 273, class = 0, nrcpts = 1, msgid = <201.r25@localhost.localdomain>, rơle = apache @ localhost
sendmail 4985 r25985: ruleset = check_mail, arg1 =, rơle = mydomain.com [127.0.0.1], từ chối = 553 5.5.4 ... Tên miền thực cần thiết cho địa chỉ người gửi
sendmail 4984 r25984: to=external@server.com, ctladdr = apache (48/48), delay = 00: 00:01, xdelay = 00: 00: 00, mailer = rơle, pr = 30273, rơle = [127.0.0.1] [127.0.0.1], dsn = 5.6.0, stat = Lỗi định dạng dữ liệu
sendmail 4984 r25984: r25984: DSN: Lỗi định dạng dữ liệu
cron có thể gửi email đến bên ngoài@server.com bất cứ khi nào có vấn đề với logrotate. Tôi không chắc tại sao php không thể làm như vậy. Tôi đã thử thay đổi cấu hình mặc định trong `sendmail.mc bằng cách sau:
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
Nhưng, nó dường như không có tác dụng. Tiêu đề từ địa chỉ trong chức năng thư php đã được đặt. Tôi cũng đã đảm bảo rằng SELinux httpd_can_sendmail
được kích hoạt. Tôi cần làm gì khác để nhận được thư được gửi?
dnl
trước mặt chúng.
mail()
không? Và, sendmail.mc
không phải là tệp cấu hình phù hợp, tệp này phải được biên dịch thành sendmail.cf
sử dụng m4
.
sendmail.mc
, thay đổi các dònglocalhost.localdomain
vàlocalhost
thành một cái gì đó có ý nghĩa và biên dịch tệp mc thànhsendmail.cf
?