배경 : 개발 목적으로 로컬 아파치 서버를 설정 한 경우 sendmail이 이메일을 보내는 데 시간이 오래 (최소 1 분) 걸리는 문제가 발생할 수 있습니다. 생성 한 이메일로 문제를 디버깅하려고하면 매우 실망 스럽습니다.
인터넷에는이 문제에 대해 토론하는 몇 개의 포럼 게시물이 있습니다. 그러나 주제 중 어느 것도 내 제한된 지식에 대해 충분히 자세하게 무엇을 해야하는지 설명하지 않았습니다. 나를 위해 일한 단계는 다음과 같습니다.
1) 다음 명령을 사용하여 호스트 이름을 찾으십시오 (잊어 버린 경우).
:~$ cat /hosts/hostname
myhostname
2) 파일을 편집하고 /etc/hosts
첫 번째 줄이 다음과 같은지 확인하십시오.
127.0.0.1 localhost.localdomain localhost myhostname
3) sendmail 구성 파일을 편집하고 ( /etc/mail/sendmail.cf
우분투에서) 줄 주석 처리를 제거하십시오#O HostsFile=/etc/hosts
4) 컴퓨터를 다시 시작하십시오. 이제 컴퓨터가 훨씬 빠르게 부팅되고 mail () 함수가 거의 즉시 반환됩니다. 그러나 5 단계를 따르지 않으면 실제로 이메일이 전송되지 않습니다.
5) 메일 기능을 사용할 때마다 sendmail '-f'옵션을 새로 사용해야합니다. 예를 들면 다음과 같습니다.
mail('recipient@somewhere.com', 'the subject', 'the message', null, '-fsender@somewhere.com');
동료 서버 오류에 대한 내 질문은 다음과 같습니다.
sendmail -f 옵션을 사용할 필요가 없도록 추가로 변경할 수있는 것은 무엇입니까? -f 옵션을 추가하기는 어렵지 않지만 Drupal과 같은 CMS가 메일을 보낼 때 -f 옵션을 사용하지 않는 경우 문제가됩니다. 이 옵션을 추가하려면 핵심 모듈을 해킹해야합니다.
cat /etc/hostname