Bối cảnh: Nếu bạn đã thiết lập một máy chủ apache cục bộ cho mục đích phát triển, bạn có thể gặp phải vấn đề trong đó sendmail mất nhiều thời gian (ít nhất một phút) để gửi email. Điều này cực kỳ bực bội nếu bạn đang cố gắng gỡ lỗi một vấn đề với một email bạn đã tạo.
Có một số bài viết diễn đàn trên internet thảo luận về vấn đề này. Tuy nhiên, không có chủ đề nào mô tả những gì cần làm chi tiết cho kiến thức hạn chế của tôi. Dưới đây là các bước làm việc cho tôi:
1) tìm tên máy chủ của bạn (trong trường hợp bạn quên nó) bằng lệnh này:
:~$ cat /hosts/hostname
myhostname
2) chỉnh sửa tập tin /etc/hosts
và đảm bảo dòng đầu tiên như sau:
127.0.0.1 localhost.localdomain localhost myhostname
3) chỉnh sửa tệp cấu hình sendmail ( /etc/mail/sendmail.cf
trong Ubuntu) và Bỏ dòng#O HostsFile=/etc/hosts
4) Khởi động lại máy tính. Máy tính sẽ khởi động nhanh hơn nhiều bây giờ và chức năng mail () sẽ trả về gần như ngay lập tức. TUY NHIÊN, các email sẽ không thực sự được gửi trừ khi bạn làm theo bước 5.
5) Bạn mới phải sử dụng tùy chọn sendmail '-f' bất cứ khi nào sử dụng chức năng thư. Ví dụ:
mail('recipient@somewhere.com', 'the subject', 'the message', null, '-fsender@somewhere.com');
Câu hỏi của tôi cho các máy chủ đồng nghiệp của tôi là:
Những thay đổi nào khác có thể được thực hiện để tôi không phải sử dụng tùy chọn sendmail -f? Mặc dù không khó để thêm tùy chọn -f, nhưng đó là một vấn đề khi CMS của bạn (chẳng hạn như Drupal) không sử dụng tùy chọn -f khi gửi thư. Bạn sẽ cần phải hack một mô-đun lõi để thêm tùy chọn này.
cat /etc/hostname