ฉันพยายามส่งอีเมลโดยใช้mail()
ฟังก์ชั่นphp แต่มันล้มเหลวอย่างใดบ่นว่าจำเป็นต้องมีชื่อโดเมนจริง ต่อไปนี้เป็นข้อสังเกตใน maillog:
sendmail 4984 r25984: จาก = apache, size = 273, class = 0, nrcpts = 1, msgid = <201.r25@localhost.localdomain>, relay = apache @ localhost
sendmail 4985 r25985: ruleset = check_mail, arg1 = mydomain.com [127.0.0.1], ปฏิเสธ = 553 5.5.4 ... ชื่อโดเมนจริงที่จำเป็นสำหรับที่อยู่ผู้ส่ง
sendmail 4984 r25984: to=external@server.com, ctladdr = apache (48/48) ล่าช้า = 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 = ข้อผิดพลาดของรูปแบบข้อมูล
sendmail 4984 r25984: r25984: DSN: ข้อผิดพลาดการจัดรูปแบบข้อมูล
cron สามารถส่งอีเมลไปที่ external@server.com เมื่อใดก็ตามที่มีปัญหากับ logrotate ฉันไม่แน่ใจว่าทำไม php ไม่สามารถทำได้ ฉันพยายามเปลี่ยนแปลงการกำหนดค่าเริ่มต้นใน `sendmail.mc ด้วยสิ่งต่อไปนี้:
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
แต่ดูเหมือนว่าจะไม่มีผลใด ๆ ตั้งค่าส่วนหัวจากที่อยู่ในฟังก์ชั่นอีเมล php แล้ว ฉันยังมั่นใจว่าhttpd_can_sendmail
เปิดใช้งานSELinux แล้ว ฉันต้องทำอะไรอีกเพื่อให้ได้รับจดหมาย
dnl
ต่อหน้าพวกเขา
mail()
? และที่sendmail.mc
ไม่ได้เป็นแฟ้มการกำหนดค่าที่เหมาะสมไฟล์นี้จะต้องได้รับการเรียบเรียงโดยใช้sendmail.cf
m4
sendmail.mc
, เปลี่ยนบรรทัดlocalhost.localdomain
และlocalhost
สิ่งที่มีความหมายและรวบรวมไฟล์ mc เป็นsendmail.cf
?