차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판이전 판
다음 판
이전 판
tech:sendmail [2014/03/18 23:04] V_Ltech:sendmail [2021/11/17 13:55] (현재) – [참조] 115.93.88.195
줄 1: 줄 1:
 +{{tag>sendmail ubuntu}}
 +======Sendmail======
  
 +=====개념정리=====
 +====프로토콜====
 +
 +  * SMTP (simple mail transfer protocol) : 메일을 보낼 때 사용되는 프로토콜.
 +  * POP3 (post office protocol) : 우체국처럼 메일을 받을 때 사용되는 프로토콜.
 +  * IMAP (internet mail protocol) : 메일을 받을 때 사용되는 프로토콜.
 +
 +위의 것들은 프로그램이 아니다.(헷갈리지 말것)
 +여러분들에게 익숙한 TCP/IP와 같이 메일을 전송하기 위한 프로토콜들이다.
 +
 +====프로그램====
 +  * MUA (Mail user agent) : 메일을 보내기 위해 사용되는 프로그램. 예) outlook ....
 +  * MTA (Mail transfer agent) : 메일을 전달받아 이를 외부로 전달해 주는 프로그램. (ex. sendmail)
 +
 +A가 (MUA)를 사용해서 B에게 메일을 보내면
 +
 +MTA(sendmail)가 SMTP를 이용하여 B가 사용하는 메일 서버에 전달 된다.
 +B는 POP3를 이용하여 메일서버에 존재하는 메일을 로컬로 가지고 가서 확인한다.
 +
 +만약 A와 B가 같은 동일한(하나의) 메일 서버에서 서로 메일을 주고 받을 경우에는,
 +메일이 MTA로 전달 되는 것이 아니라 MDA (mail delivery agent)로 전달이 된다.
 +
 +=====Sendmail=====
 +
 +[[Postfix]] 를 요즘 많이 쓴다고 하는데, 걍 편한 sendmail 을 설치해줬다.
 +설치...
 +
 +  sudo apt-get install  sendmail sensible-mda
 +
 +설정
 +
 +설치한뒤에 sudo sendmailconfig를 실행하면 기본 설정파일들이 생성되고 일반적인 사용은 기본 설정으로도 가능하다.
 +처음 설치된 sendmail 은 오로지 서버 내부의 계정끼리만  메일을 전달할 수 있다. (Localhost Only)
 +
 +
 +
 +원격에서 접속할 수 있게 sendmail.mc 를 바꾸어 준다.
 +''/etc/mail/sendmail.mc'' 를 열고 다음줄을 찾아서 바꾸어준다.
 +
 +  DAEMON_OPTIONS(`Family=inet,  Name=MTA-v4, Port=smtp, Addr=127.0.0.1')dnl
 +
 +인 부분을
 +  DAEMON_OPTIONS(`Family=inet,  Name=MTA-v4, Port=smtp, Addr=0.0.0.0')dnl
 +
 +====확인====
 +
 +   telnet 127.0.0.1 25
 +
 +  help
 +
 +  quit
 +
 +<code>$ telnet 127.0.0.1 25
 +Trying 127.0.0.1...
 +Connected to 127.0.0.1.
 +Escape character is '^]'.
 +220 ubuntu ESMTP Sendmail 8.14.4/8.14.4/Debian-2ubuntu2; Tue, 24 Sep 2013 22:32:18 +0900; (No UCE/UBE) logging access from: localhost(OK)-localhost [127.0.0.1]
 +help
 +214-2.0.0 This is sendmail version 8.14.4
 +214-2.0.0 Topics:
 +214-2.0.0       HELO    EHLO    MAIL    RCPT    DATA
 +214-2.0.0       RSET    NOOP    QUIT    HELP    VRFY
 +214-2.0.0       EXPN    VERB    ETRN    DSN     AUTH
 +214-2.0.0       STARTTLS
 +214-2.0.0 For more info use "HELP <topic>".
 +214-2.0.0 To report bugs in the implementation see
 +214-2.0.0       http://www.sendmail.org/email-addresses.html
 +214-2.0.0 For local information send email to Postmaster at your site.
 +214 2.0.0 End of HELP info
 +quit
 +221 2.0.0 ubuntu closing connection
 +Connection closed by foreign host.
 +</code>
 +
 +====콘솔로 메일 쓰기====
 +
 +  mail user1  // 이렇게 하면 동일 서버의 user1 에게 편지를 쓰는 것이다.
 +  mail [email protected]   //외부로 메일 쓰기
 +
 +<code>
 +Subject: test     <--제목이다.
 +hi user1          <--본문내용이다.
 +.                 <--글마침 표시이다.
 +Cc:               <--참조 이다.  (주)메일을 함께 읽을 메일 주소를 적어 주는 부분이다.
 +</code>
 +
 +''.'' 만 입력하거나, ''ctrl-d''를 입력하면 완료된다.
 +====콘솔로 메일 읽기====
 +  mail
 +
 +====외부메일 받기====
 +
 +도메인의 MX 레코드 설정이 되어 있어야 하고, 포트 25번 (smtp)가 열려 있어야 한다. [[dnsever]]에서 MX 설정란에 서버도메인명을 넣도록 한다. ip주소는 안된다.
 +
 +=====기타=====
 +
 +메일이 오면 ''/var/mail'' 에 아이디 파일명으로 저장된다.
 +콘솔로 로긴하여 ''mail''명령어로 확인할 수 있다.
 +
 +메일을 읽고 나면 읽은 메일은 각 계정의 홈폴더에 ''mbox''라는 파일에 덧붙여 저장된다.
 +
 +공유기를 사용중이고 외부메일을 받으려면 포트를 열어줘야 한다. 25 (smtp), 110 (pop3) 을 필요에 따라 열어준다.
 +
 +====이메일 포워딩====
 +
 +===중앙집중 (alias)===
 +
 +  /etc/mail/aliases
 +
 +파일을 보면
 +
 +<code>#
 +# Mail aliases for sendmail
 +#
 +# You must run newaliases(1) after making changes to this file.
 +#
 +
 +# Required aliases
 +postmaster:     root
 +MAILER-DAEMON:  postmaster
 +
 +# Common aliases
 +abuse:          postmaster
 +spam:           postmaster
 +
 +# Other aliases
 +test:           "| /home/script/todo.php"
 +
 +</code>
 +
 +설정된 도메인의 해당
 +이름으로 오는 메일을 다른 곳으로 전달하게 된다.
 +
 +수정 후 ''sudo newaliases''명령을 실행해줘야 등록되며, 작동이 된다.
 +
 +즉 ''[email protected]'' 으로 오는 메일은 ''[email protected]'' 으로 전달된다.
 +목표계정이 꼭 내부계정일 필요는 없으며,
 +  root:     [email protected]
 +이런식으로 외부메일로 해도 된다.
 +
 +===계정별===
 +각각의 계정의 홈폴더에
 +  .forward
 +라는 파일을 생성하여 메일주소 (컴마로 분리) 를 넣어놓으면 그 계정으로 오는 메일을 다른 주소로 전달할 수 있다.
 +
 +  /home/test/.forward
 +
 +  [email protected]
 +
 +이런식임.
 +
 +  * [[http://www.bga.org/~lessem/psyc5112/usail/mail/aliasing/|sendmail Aliasing]] 참조.
 +  * http://www.freebsddiary.org/phorum/read.php?f=1&i=7315&t=7315
 +====호스트네임 문제====
 +간혹 Sendmail을 실행하면 무지하게 느리게 뜨며 로그를 보면 다음과 같은 로그나 남는 경우가 있다.
 +
 +  Jan 23 04:02:08 svc-web sendmail[13139]: My unqualified host name (svc-web) unknown; sleeping for retry
 +  Jan 23 04:03:08 svc-web sendmail[13139]: unable to qualify my own domain name (svc-web) -- using short name
 +
 +이 경우 다음과 같이
 +/etc/hosts 파일의 full domain 을 설정하면 된다.
 +
 +<code>
 +# <IP> <HOSTNAME>.<DOMAIN> <ALIAS>
 +127.0.0.1       vaslor.net
 +127.0.0.1       ubuntu
 +127.0.0.1       localhost
 +127.0.1.1       vaslor.net
 +192.168.0.6     vaslor.net
 +</code>
 +
 +재시작하면된다. ''sudo reboot''
 +
 +=====참조=====
 +
 +  * http://stackoverflow.com/questions/10359437/sendmail-how-to-configure-sendmail-on-ubuntu
 +  * [[https://www.linux.co.kr/home2/board/bbs/board.php?bo_table=lecture&wr_id=774&sca=6&sca2=65|설정(한글; 좀 옛날 것)]]
 +
 +