Sendmail을 이용한 PHP mail()함수 활용

 

패키지를 설치
$sudo apt-get install sendmail
설정파일 수정
$sudo vi /etc/mail/sendmail.mc
57번째줄 근처의 DAEMON_OPTIONS 수정
DAEMON_OPTIONS(Family=inet,  Name=MTA-v4, Port=smtp, Addr=127.0.0.1')dnl
=>DAEMON_OPTIONS(
Family=inet,  Name=MTA-v4, Port=smtp’)dnl
DAEMON_OPTIONS(Family=inet,  Name=MSP-v4, Port=submission, M=Ea, Addr=127.0.0.1')dnl
=> DAEMON_OPTIONS(
Family=inet,  Name=MSP-v4, Port=submission, M=Ea’)dnl
# localhost에서만 전송 가능한 설정을 제외시켜줌.
명령어 실행
$sudo m4 /etc/mail/sendmail.mc
# m4 뭔지 모르겠음…
$sudo makemap hash access < access
# 뭔지 모름… 그냥 시키는 대로 함.
$service sendmail restart
# sendmail 재시작
전송 Test
아래 내용의 php 파일을 만들어 실행.
성공시 mail success, 실패시 mail fail 출력
<html>
<head></head>
<body>
<?php
$mailto=”수신자 메일 주소”;
$subject=”제목”;
$content=”내용”;
$result=mail($mailto, $subject, $content);
if($result){echo “mail success”;}
else{error_log($mailto, 0);  echo “mail fail”;}
?>
</body>
</html>
# 기타 문제점

아래 1번 항목은 잘못된 내용임. 확인 시 127.0.1.1 주소는 우분투의 loopback 주소로 이 내용과는 상관이 없는 듯.
다른거 하다가 이상해서 지웠더니 상관없이 잘 전송됨.
——————————————————————————————————————————————-

1. 실패 문구가 출력되지는 않으나 비정상적으로 느릴 경우
$cat /var/log/mail.err
내용을 살펴보면 호스트 네임이 어쩌고 도메인 네임이 어쩌고 err가 쏟아지고 있다.
$sudo vi /etc/hosts
127.0.0.1    localhost
127.0.1.1    컴퓨터이름
  컴퓨터이름 -> 도메인.com으로 변경
127.0.0.1    localhost
127.0.1.1    namoosoup.com
# 127.0.1.1 이 입력되어 있는게 정상인지는 모르겠지만 일단 있길래 적용.
# 확인 시 지연 사라진 것 확인.
——————————————————————————————————————————————-
라즈베리 파이에 설치를 했더니 메일 전송 속도가 느리다.
/var/log/mail.err 로그를 구글링 했더니 이런 내용이 나온다.
——————————————————————————————————————————————-

My unqualified host name (localhost) unknown; sleeping for retry

에러가 뜨면서 메일이 느리게 발송되는 문제가 발생한다.

# vi /etc/hosts

127.0.0.1       localhost

127.0.1.1       test(장비명)

이렇게 되어 있다면

127.0.0.1       localhost.localdomain localhost test

127.0.1.1       test

Ref. http://algo79.tistory.com/306

——————————————————————————————————————————————-

위 설명대로 수정 했더니 일단은 빠르게 전송 잘 된다…
Ref.
http://wispit.blogspot.kr/2012/05/linux-php-mail.html
Continue Reading
1 3 4 5