Hintergrund: Wenn Sie einen lokalen Apache-Server für Entwicklungszwecke eingerichtet haben, tritt möglicherweise ein Problem auf, bei dem das Senden von E-Mails durch sendmail viel Zeit in Anspruch nimmt (mindestens eine Minute). Dies ist äußerst frustrierend, wenn Sie versuchen, ein Problem mit einer von Ihnen generierten E-Mail zu beheben.
Es gibt mehrere Forenbeiträge im Internet, die dieses Problem behandeln. In keinem der Themen wurde jedoch detailliert genug beschrieben, was ich tun sollte, um nur begrenzte Kenntnisse zu haben. Hier sind die Schritte, die für mich gearbeitet haben:
1) Finden Sie Ihren Hostnamen (falls Sie ihn vergessen haben) mit diesem Befehl:
:~$ cat /hosts/hostname
myhostname
2) Bearbeiten Sie die Datei /etc/hosts
und stellen Sie sicher, dass die erste Zeile die folgende ist:
127.0.0.1 localhost.localdomain localhost myhostname
3) Bearbeiten Sie die sendmail-Konfigurationsdatei ( /etc/mail/sendmail.cf
in Ubuntu) und kommentieren Sie die Zeile aus#O HostsFile=/etc/hosts
4) Starten Sie den Computer neu. Der Computer sollte jetzt viel schneller starten und die mail () - Funktion sollte fast sofort wieder verfügbar sein. Die E-Mails werden jedoch erst gesendet, wenn Sie Schritt 5 befolgen.
5) Sie müssen die Option sendmail '-f' neu verwenden, wenn Sie die Mail-Funktion verwenden. Beispielsweise:
mail('recipient@somewhere.com', 'the subject', 'the message', null, '-fsender@somewhere.com');
Meine Frage an meine Serverfehlerkollegen lautet:
Welche weiteren Änderungen können vorgenommen werden, damit ich die Option sendmail -f nicht verwenden muss? Obwohl es nicht sehr schwierig ist, die Option -f hinzuzufügen, ist es ein Problem, wenn Ihr CMS (wie Drupal) beim Senden von E-Mails die Option -f nicht verwendet. Sie müssten ein Kernmodul hacken, um diese Option hinzuzufügen.
cat /etc/hostname