Ich habe versucht, eine E-Mail mit der PHP- mail()
Funktion zu versenden, aber es ist irgendwie fehlgeschlagen und ich habe mich beschwert, dass ein echter Domainname erforderlich ist. Im Maillog wird folgendes beobachtet:
sendmail 4984 r25984: from = Apache, Größe = 273, Klasse = 0, nrcpts = 1, msgid = <[email protected]>, Relay = Apache @ localhost
sendmail 4985 r25985: Regelsatz = check_mail, arg1 =, Relay = mydomain.com [127.0.0.1], ablehnen = 553 5.5.4 ... Realer Domainname für Absenderadresse erforderlich
sendmail 4984 r25984: [email protected], 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 = Datenformatfehler
sendmail 4984 r25984: r25984: DSN: Datenformatfehler
cron kann bei Problemen mit logrotate eine E-Mail an [email protected] senden. Ich bin mir nicht sicher, warum PHP dazu nicht in der Lage ist. Ich habe versucht, Änderungen an der Standardkonfiguration in `sendmail.mc wie folgt vorzunehmen:
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
Aber es scheint keine Wirkung zu haben. Der Header von Adresse in PHP Mail-Funktion wurde bereits gesetzt. Ich habe auch sichergestellt, dass SELinux httpd_can_sendmail
aktiviert ist. Was muss ich noch tun, um die Post zuzustellen?
quelle
sendmail.mc
, die Zeilenlocalhost.localdomain
undlocalhost
etwas Sinnvolles geändert und die mc-Datei in kompiliertsendmail.cf
?dnl
vor ihnen entfernt habe.mail()
? Und dassendmail.mc
ist nicht die richtige Konfigurationsdatei, diese Datei muss mit der kompiliertsendmail.cf
werdenm4
.Antworten:
Ich glaube, ich habe es gerade gelöst. Ich habe folgendes in / etc / hosts :
Was ich brauche, ist, myserver.com vor die Zeile mit zu stellen,
localhost.localdomain
damit sendmail denkt, dass es eine echte Domain zum Versenden der E-Mail verwendet.quelle
/etc/hosts
(mit einem "s") anders als das: gute Antwort!Sie müssen in Ihren Skripten die Header Ihrer E-Mail konfigurieren, um sie zu haben
From: [email protected]
.quelle
In Ihrem
sendmail.mc
Add:Kompilieren Sie neu
sendmail.cf
, starten Sie sendmail neu und Sie sollten in Ordnung seinquelle
In meinem Fall musste unter Ubuntu 16.04 auf einer AWS-Instanz Folgendes hinzugefügt werden
/etc/mail/sendmail.mc
:in einer Zeile vor der
MAILER_DEFINITIONS
Zeile gegen Ende der Datei UND fügen Sie dieselbe Zeile am Ende von hinzu/etc/mail/submit.mc
. Geben Sie dannsudo su
Root-Berechtigungen ein und kompilieren Sie die Konfiguration mit:... dann
exit
sudo. Umsudo service sendmail restart
sendmail neu zu starten, wurden E-Mails angezeigt, die vom Domainnamen gesendet wurden. Weder die anderen Befehle FEATURE oder MASQUERADE waren erforderlich, noch ein Eintrag in der/etc/hosts
Datei.quelle