Tło: Jeśli skonfigurowałeś lokalny serwer Apache do celów programistycznych, możesz mieć problem z tym, że sendmail zajmuje dużo czasu (co najmniej minutę) na wysyłanie wiadomości e-mail. Jest to bardzo frustrujące, jeśli próbujesz debugować problem z wygenerowanym e-mailem.
W Internecie znajduje się kilka postów na forum, które omawiają ten problem. Jednak żaden z tematów nie opisał, co robić wystarczająco szczegółowo, aby uzyskać moją ograniczoną wiedzę. Oto kroki, które działały dla mnie:
1) znajdź swoją nazwę hosta (na wypadek, gdybyś zapomniał) za pomocą tego polecenia:
:~$ cat /hosts/hostname
myhostname
2) edytuj plik /etc/hosts
i upewnij się, że pierwszy wiersz jest następujący:
127.0.0.1 localhost.localdomain localhost myhostname
3) edytuj plik konfiguracyjny sendmaila ( /etc/mail/sendmail.cf
w Ubuntu) i odkomentuj linię#O HostsFile=/etc/hosts
4) Uruchom ponownie komputer. Komputer powinien teraz uruchomić się znacznie szybciej, a funkcja mail () powinna powrócić prawie natychmiast. JEDNAK e-maile nie zostaną wysłane, chyba że wykonasz krok 5.
5) Musisz użyć opcji sendmail „-f” za każdym razem, gdy korzystasz z funkcji mail. Na przykład:
mail('recipient@somewhere.com', 'the subject', 'the message', null, '-fsender@somewhere.com');
Moje pytanie do moich innych administratorów serwerów brzmi:
Jakie dalsze zmiany można wprowadzić, aby nie musiałem używać opcji sendmail -f? Chociaż dodanie opcji -f nie jest trudne, jest problem, gdy Twój CMS (taki jak Drupal) nie używa opcji -f podczas wysyłania poczty. Aby dodać tę opcję, musisz zhakować moduł podstawowy.
cat /etc/hostname