Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Today
Total
관리 메뉴

Tason

[Ubuntu] Ubuntu에 Postfix 설치, Gmail SMTP 설정, 메일 보내기 본문

OS/Ubuntu

[Ubuntu] Ubuntu에 Postfix 설치, Gmail SMTP 설정, 메일 보내기

Yan g 2019. 9. 19. 17:54


◆ Gmail 계정 준비

◆ Ubuntu 18.04 LTS 버전

◆ Ubuntu 클라우드에서 Postfix를 SEND-only SMTP로 구성 



1. Ubuntu 실행 후 Root로 이동


sudo su

 Root의 Password 입력을 요구하는 라인이 나오고 Password를 입력하면 Root로 이동한다. 


2. Postfix MTA를 구성하기 전, 발신 내부 이메일에 올바른 도메인을 반영하도록 호스트명 변경


hostname -f

 먼저 Host의 이름을 확인하는 명령어이다. 현재 지정된 Host의 이름이 출력된다.


hostname example.com

 다음 명령어로 Host의 이름을 바꿀 수 있고  example.com 부분은 본인이 원하는 Host이름을 입력하면 된다. 

[앞으로의 설명에서는 호스트명을 demo.tsy.com 사용]


sudo nano /etc/hostname

 위의 명령어를 통해 hostname을 가리키는 file 내에서도 수정이 필요하다.

[ demo.tsy.com ](자신의 호스트명) 입력 ▶ [ Ctrl + X ] 키 입력 ▶ Y 키 입력 ▶ Enter 



sudo nano /etc/hosts

 마지막으로 위의 명령을 실행하고 127.0.1.1 라인에서 [ demo.tsy.com ] 부분만 자신의 호스트명으로 수정한다. 


클라우드 서버의 호스트 이름 변경 완료

※ 지금까지 설정한 과정은 Ubuntu를 다시 시작한 후에 초기화 됩니다. 뒷 부분의 내용을 잘 따라하셨다면 이후에 우분투에 접속했을 때 앞부분의 모든 과정을 생략하여도 정상적으로 메일을 보낼 수 있습니다. 이 변경사항을 영구적으로 편집하려면 SSH를 통해 호스트 이름 및 호스트 파일을 편집해야 합니다.

 

reboot

Ubuntu 서버를 재부팅한다. ( 명령어 실행이 되지 않는 경우 Ubuntu 창을 닫은 후 재시작한다. 위에서 설명한 주의사항처럼 재접속 했을 경우엔 root로 이동하여 호스트명을 바꿔주어야 한다. )



3. Postfix 설치


sudo apt-get update

 Postfix를 설치하기 전에 apt저장소를 먼저 업데이트한다.


sudo apt-get install mailutils

 Postfix를 설치한다. mailutils를 사용하면 다른 메일 유틸리티와 함께 Postfix가 Ubuntu 클라우드에 설치된다.

After this operation, 39.0 MB of additional disk space will be used.

Do you want to continue? [Y/n] y

설치 중간에 위와 같이 추가적인 디스크 공간이 필요하다는 질의가 던져지고 [ y ] 버튼을 누르면 설치가 마저 진행되고 Postfix를 구성하는 창이 나온다.


 Postfix를 구성하는 메세지 출력창이다. 첫번째로 가장 적합한 서버를 설정하라는 메세지이다. SMTP를 사용할 예정이므로 목록에서 [ Internet Site ] 옵션을 선택하고 [ Enter ] 버튼을 누른다.


 다음으로 정규화 된 도메인 이름 FQDN을 설정하라는 메세지가 표신된다. 일반적으로 hostname과 동일하게 설정한다. hostname을 입력하고 [ Enter ] 버튼을 누른다. 


dpkg-reconfigure postfix

다음 명령을 사용하여 Postfix를 언제든 재구성할 수 있다. 본 실습에서는 사용하지 않는다.



4. Gmail SMTP를 사용하여 Postfix를 구성


sudo nano /etc/postfix/main.cf


●  Postfix가 설치되었으므로 SMTP relay에 Gmail을 사용하도록 설정한다. 

아래쪽으로 스크롤하여 [ relayhost = ] 옵션을 찾아 Gmail SMTP 서버로 설정한다. 

587 : 모든 발신 이메일에 암호화 된 TLS 연결을 사용한다.

relayhost = [smtp.gmail.com] : 587


●  기존 코드의 끝에 아래의 문구를 붙여넣는다. ( 보안 인증 활성화, SMTP의 해시 비밀번호 읽기작업 )

# Enables SASL authentication for postfix

smtp_sasl_auth_enable = yes

# Disallow methods that allow anonymous authentication

smtp_sasl_security_options = noanonymous

# Location of sasl_passwd we saved

smtp_sasl_password_maps = hash:/etc/postfix/sasl/sasl_passwd

# Enable STARTTLS encryption for SMTP

smtp_tls_security_level = encrypt

# Location of CA certificates for TLS

smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt


● mydestination값을 조정한다. 형식은 mydestination = [ localhost.example.com, localhost ]이다.  ( 호스트명이 demo.tsy.com 일 때 아래와 같이 입력 )

mydestination = localhost.tsy.com, localhost


+ [ myhostname = ]  부분의 값이 앞에서 정의한 호스트 이름으로 설정되어 있는지 확인한다. 


수정한 내용 확인

 확인이 완료되면 편집기를 닫는다.


sudo nano /etc/postfix/sasl/sasl_passwd  

 다음으로 암호화 된 SMTP 연결을 인증하기 위한 과정이다. 위의 명령어를 통해 [ sasl_passwd ]라는 새 파일을 만들었고 이 파일 안에 자격 증명을 위한 비밀번호를 추가할 것이다. 아래와 같은 형식으로 타이핑 한 후에 편집기를 닫는다.

[smtp.gmail.com]:587 이메일주소@gmail.com:비밀번호


sudo postmap /etc/postfix/sasl/sasl_passwd

 postmap 명령을 통해 [ sasl_passwd ] 파일을 데이터베이스 파일로 변환한다. 


chown root:root /etc/postfix/sasl/sasl_passwd

chmod 600 /etc/postfix/sasl/sasl_passwd

 Root 사용자의 접근권한과 '읽기/쓰기' 를 제한하기 위해 passwd 파일의 보안 및 소유권을 변경한다. 


sudo service postfix restart

 위 명령을 통해 Postfix를 다시 시작하고 변경사항을 영구적으로 만든다.


위의 URL을 클릭하여 Google 계정에 로그인 한 후, "보안 수준이 낮은 앱의 허용" 을 "사용"하여 SMTP를 통해 이메일을 보낼 수 있도록 한다. 



5. 이메일 보내기


echo "Test Postfix Gmail SMTP Relay" | mail -s "Postfix Gmail SMTP Relay Test" your-email-address@gmail.com

 다음 명령어를 통해 mail을 전송한다. your-email-address 부분에 자신의 gmail 아이디를 입력한다.

Gmail을 확인하면 메일이 도착한 것을 볼 수 있다.


 메일을 열어보면 표시된 이름이 [ root ] 이다. 이를 변경할 수 있다.


getent passwd $USER | cut -d ':' -f 5 | cut -d ',' -f 1

 위의 명령어는 모든 사용자 이름을 출력한다. 현재는 [ root ] 라는 하나의 계정이 출력될 것이다.


sudo chfn -f "LastName FirstName" username

 위의 명령어를 실행하면 사용자의 이름을 변경할 수 있다.


아래와 같이 명령어를 입력했고, 다시 메일을 보낸 후 나타난 결과이다.

sudo chfn -f "TaeseongYang PostfixMail" root




[ 참조 ]

https://restorebin.com/configure-postfix-smtp-relay/#what-is-postfix


Comments