PHP mail 명령어를 이용해서 이메일을 발송하면 무조건 스팸으로 들어가는 문제가 생겼다.
설정 파일도 바꿔보고 재 설치해도 동일한 증상이 발생하였다.
화이트 도메인 설정의 문제도 확인 해 보았지만 문제가 없었다.
네이버에서 받은 이메일 원문을 확인해보니 spf 부분에 domain of nobody@pipeline 라는 도메인으로 발송자가 처리되어 있는 문제를 확인하였다.
{중략} ARC-Authentication-Results: i=1; mx.naver.com;
spf=pass (mx.naver.com: domain of nobody@pipeline designates 49.247.147.171 as permitted sender) smtp.mailfrom=nobody@pipeline
Return-Path: <nobody@gtfun.net> {중략}
아래와 같이 "hostnamectl set-hostname gtfun.net" 명령어를 실행하고 이메일을 재 시작했다.
리눅스의 호스트명을 변경하는 명령어 이다.
# hostnamectl set-hostname gtfun.net
# systemctl restart sendmail
환경 파일을 수정해서 사용해도 된다.
# vi /etc/hostname
정상적으로 이메일이 도착한 것을 확인할 수 있었다.
원인은 hostname 을 설정해야 메일 발송시 hostname의 도메인으로 발송이 되는 것이다. 이전에는 기본 설치해도 문제가 없었는데 이번에 설치한 서버의 경우는 계정 이름부터 기본값이 pipeline으로 설정되어 있어서 생긴 부분이다.
초기에 hostnamectl set-hostname magicpipe 이런 명령어로 설정되어 있었던것 같다.