postconf -n은 /etc/postfix/main.cf에서 직접 바꾼 설정만 보여준다. 여기에 나오지 않는 것은 기본값을 쓰고 있다는 것이다. 그리고 일부 설정은 리눅스 배포판에서 바꿔서 배포하고 있을 것이다. 아래 코드는 현재 설정된 서버에서 postconf -n 명령의 출력을 적은 것이다. 다만 개인 정보를 담고 있는 부분은 적절히 고쳤다.
alias_database = hash:/etc/aliases alias_maps = hash:/etc/aliases append_dot_mydomain = no biff = no config_directory = /etc/postfix inet_interfaces = all inet_protocols = ipv4 ## mailbox, MDA home_mailbox = Maildir/ #mailbox_command = procmail -a "$EXTENSION" ## mailbox and message size limit mailbox_size_limit = 0 message_size_limit = 102400000 ## domain settings mydestination = host.domainname, localhost.domainname, localhost myhostname = host.domainname #mynetworks_style = host mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 myorigin = /etc/mailname readme_directory = no recipient_delimiter = + relayhost = smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache smtpd_banner = $myhostname ESMTP $mail_name ($mail_version) ## Dovecot SASL smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination smtpd_sasl_auth_enable = yes smtpd_sasl_path = private/auth smtpd_sasl_type = dovecot ## TLS smtpd_tls_cert_file = /etc/ssl/my.pem smtpd_tls_key_file = /etc/ssl/private/my.key smtpd_tls_security_level = may smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtpd_use_tls = yes
필자가 기억하기로 mailbox_command가 기본값(empty)이어도, home_mailbox를 제대로 해두면 동작했던 것 같다. 원한다면 procmail을 쓸 수도 있는데 필자는 procmail에 대해 거의 아는 것이 없다.
여기서 Dovecot SASL은 설정하지 않아도 local에서 mutt 등의 MUA를 이용하면 메일을 보내거나 받는 것이 가능하다. 이 기능을 쓰려면 당연히 dovecot을 설치하고 적절히 설정해야 하는데, 이에 대해서는 별도의 게시물로 작성할 예정이다.
여기서 Dovecot SASL은 설정하지 않아도 local에서 mutt 등의 MUA를 이용하면 메일을 보내거나 받는 것이 가능하다. 이 기능을 쓰려면 당연히 dovecot을 설치하고 적절히 설정해야 하는데, 이에 대해서는 별도의 게시물로 작성할 예정이다.
참고로 domainname이 없는 서버에서도 postfix를 사용하는 것이 가능하긴 하다. 그런데 IP 주소를 이용하여 메일을 보내려고 할 때 받는 사람 주소에 "user@127.0.0.1"처럼 적으면 메일이 가지 않을 것이다. 필자는 장기간의 검색을 통해 어렵게 이유를 알아내었는데, 결론은 IP 주소를 적을 때 [127.0.0.1]라고 적어야 한다는 것이다.
그리고 /etc/postfix/master.cf에서는 submission protocol 부분을 uncomment하였다. 이렇게 하면 587번 포트를 사용할 수 있다.
submission inet n - - - - smtpd
문제가 있을 경우에는 /var/log/mail 등의 로그 파일을 참고하면 큰 도움이 되며, smtpd_tls_loglevel 등의 옵션을 사용하여 로그 수준을 변경하는 것도 도움이 된다. 그런데 필자가 삽질 다 해보고 최종 결론을 적은 것이라 위에 적힌대로만 하면 아마도 잘 동작할 것 같다.