Передумови: Якщо ви створили локальний сервер apache для цілей розвитку, можливо, у вас виникли проблеми, коли відправлення електронної пошти займає тривалий час (принаймні одну хвилину). Це надзвичайно засмучує, якщо ви намагаєтеся налагодити проблему із створеним електронним повідомленням.
В Інтернеті є кілька дописів форуму, які обговорюють цю проблему. Однак жодна тема не описувала, що потрібно робити досить детально для моїх обмежених знань. Ось такі кроки, які працювали для мене:
1) знайдіть ім’я хоста (якщо ви його забули) за допомогою цієї команди:
:~$ cat /hosts/hostname
myhostname
2) відредагуйте файл /etc/hosts
і переконайтесь, що перший рядок такий:
127.0.0.1 localhost.localdomain localhost myhostname
3) відредагуйте конфігураційний файл sendmail ( /etc/mail/sendmail.cf
в Ubuntu) та Uncomment the line#O HostsFile=/etc/hosts
4) Перезавантажте комп'ютер. Зараз комп'ютер повинен завантажуватися набагато швидше, а функція пошти () повинна повернутися майже негайно. ЗАРАЗУ, електронні листи насправді не надсилатимуться, якщо ви не виконаєте кроку 5.
5) Ви повинні знову використовувати параметр sendmail '-f', коли використовуєте функцію пошти. Наприклад:
mail('recipient@somewhere.com', 'the subject', 'the message', null, '-fsender@somewhere.com');
Моє запитання до моїх колег по відношенню до сервера:
Які подальші зміни можна внести, щоб мені не довелося використовувати параметр sendmail -f? Хоча додати параметр -f не дуже важко, це проблема, коли ваша CMS (наприклад, Drupal) не використовує параметр -f під час надсилання пошти. Вам потрібно буде зламати основний модуль, щоб додати цю опцію.
cat /etc/hostname