서비스를 운영하다보면 서버에서 이메일을 발송할 일이 있을때 여러가지 이유로(보안상 계정 관리, 발송한 메일을 확인 등) 지메일 계정으로 쓰고 싶은 경우가 종종 있습니다. 지메일은 메일사본을 보관해주고 웹인터페이스를 제공하기 때문에 저는 중요한 고객서비스를 제공할때 자주 사용하고 있습니다. 

이번에 신규서버에 설정할 일이 생겨서 설정 과정을 공유합니다.


이번에 제가 테스트한 환경은 Linux Mint 18.3 입니다. 

하모니카 커뮤니티 에디션, Linux Mint 18.3, Ubuntu 16.04 등은 모두 동일한 방법을 사용해서 적용하시면 됩니다.


패키지 설치

필요한 모든 패키지 설치는 다음과 같이 실행합니다.

sudo apt-get install postfix mailutils libsasl2-2 ca-certificates libsasl2-modules


처음 설치하시는 경우 postfix 설정 도우미가 어떤 용도로 사용할지 물어보게 됩니다. 이때 Internet Site 를 선택하세요.


postfix 환경설정

postfix 설정파일 편집

sudo vi /etc/postfix/main.cf 명령으로 설정파일을 편집합니다. 

항상 편집을 시도하기 전에 원본을 복사해서 보관해두는 것을 잊지마세요.

파일의 내용은 아래내용을 그대로 사용합니다.


# gmail smtp setting

relayhost = [smtp.gmail.com]:587

smtp_sasl_auth_enable = yes

smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd

smtp_sasl_security_options = noanonymous

smtp_tls_CAfile = /etc/postfix/cacert.pem

smtp_use_tls = yes


계정정보 파일 생성

sudo vi /etc/postfix/sasl_passwd 명령으로 계정정보 파일을 생성하고 아래의 붉은색부분을 자신의 지메일 계정 정보로 적습니다.

[smtp.gmail.com]:587    USERNAME@gmail.com:PASSWORD

postfix 에서 사용할 수 있는 db파일로 변환

다음의 명령으로 계정정보 파일을 루트만 접근하도록 변경하고 postfix에서 사용하는 파일형태로 변환해 줍니다.

sudo chmod 400 /etc/postfix/sasl_passwd
sudo postmap /etc/postfix/sasl_passwd

CAfile 생성

환경설정에서 정의해준 CA파일을 다음과 같이 생성해 줍니다.

cat /etc/ssl/certs/thawte_Premium_Server_CA.pem | sudo tee -a /etc/postfix/cacert.pem


postfix 서비스 재시작


sudo /etc/init.d/postfix reload


테스트

만일 mailutils 가 설치되지 않은 경우에는 이 명령어가 동작하지 않습니다. 설치가 되지 않은 경우에는 다음과 같이 설치해줍니다.

sudo apt install mailutils


메일발송을 다음과 같이 테스트 해 봅니다. 붉은색 부분을 자신이 확인할 수 있는 이메일계정으로 변경해주세요.

echo "postfix로 발송한 메일입니다" | mail -s "Postfix 메일 테스트" 수신이메일주소


디버깅

문제가 발생하여 로그를 확인하고 싶은 경우는 

tail -f 10  /var/log/mail.log 명령어로 postfix의 작업과정 확인합니다.



지메일 환경설정

2단계 보안인증

게정 로그인 정보가 정상임에도 불구하고 다음과 같은 오류가 로그파일에 남는 경우에는 지메일에서 추가적인 환경설정이 필요합니다.

postfix/smtp[21326]: CF7CE24225C: SASL authentication failed; server smtp.gmail.com[108.177.125.109] said: 535-5.7.8 Username and Password not accepted. Learn more at?535 5.7.8  https://support.google.com/mail/?p=BadCredentials k24sm23509527pfj.32 - gsmtp


이 이유는 지메일의 보안설정때문에 발생합니다.

먼저 아래 링크에서 2단계 인증을 사용하도록 변경합니다. 이때 보안코드를 받을 수 있는 휴대폰이 있어야 합니다.

https://myaccount.google.com/u/2/security



앱 비밀번호 생성

인증을 마쳤으면 다음과 같이 앱 비밀번호를 생성해줍니다. 새로운 앱을 원하는 이름으로 만들고 이때 발급되는 비밀번호를 복사해둡니다.


다음과 같이 이전에 설정한 파일의 비밀번호 대신 복사한 비밀번호를를 사용하도록 변경합니다.

sudo vi /etc/postfix/sasl_passwd 


[smtp.gmail.com]:587    USERNAME@gmail.com:발급받은앱비밀번호

저장해주고 다시 변경된 내용을 postfix에서 사용하는 파일형태로 변환해 줍니다. 저장이 안되는경우는 파일의 쓰기 권한 때문입니다. vi 에서는 저장할때 :wq! 하시면 강제 저장이 됩니다.

sudo postmap /etc/postfix/sasl_passwd

테스트 및 확인

다음과 같이 테스트 해봅니다.

echo "postfix로 발송한 메일입니다" | mail -s "Postfix 메일 테스트" 수신이메일주소







업무의 대부분이 이메일로 소통되고 있는데, 이슈를 따로 레드마인에 가서 등록하는 비효율적인 영역의 업무를 줄이기 위해서는 이메일을 통한 이슈등록이 필요합니다. 이번에는 레드마인의 이슈를 이메일로 등록하는 방법을 진행해볼까 합니다.


운영 환경

OS : CentOS 6.x

Version : Redmine 2.2.0


이 글은 레드마인이 설치된 상태에서 시작하기 때문에, 레드마인이 설치되지 않은 경우는 이전글을 참고해서 설치하시기 바랍니다. http://yes.imhappyo.com/403



레드마인 2.x 버전에서는 설정에 필요한 기본적인 내용이 모두 포함되어 있으므로 실제 우리가 설정해야 하는 것은 자동으로 pop3 또는 imap 이메일 서버에 접근해서 이슈를 가져오게 만드는 과정뿐입니다.


저는 redmine@abydos.co.kr 이라는 이메일 계정으로 보내는 내용을 자동으로 레드마인에 등록하는 시나리오를 구상하고 다음과 같이 설정했습니다.


1) 이메일로 받는 것이 가능하도록 레드마인 관리자로 로그인하여 설정을 변경.

관리-> 설정-> 수신메일-> 수신메일에 WS를 허용 하고 키생성을 눌러서 API키를 생성해 둡니다.





2) cron을 이용하여 주기적으로 이슈를 가져오도록 설정.

5분마다 레드마인이 redmine@abydos.co.kr 계정의 imap 서버를 접근하여 이슈를 가져오는 cron 설정은 다음과 같습니다. (pop3를 사용하신다면 아래의 예를 참고하세요)


Gmail imap 서비스 사용하는 경우 crontab -e

0,5,10,15,20,25,30,35,40,45,50,55 * * * * rake -f /opt/webRoot/redmine/Rakefile redmine:email:receive_imap RAILS_ENV="production" host=imap.gmail.com username=redmine@abydos.co.kr password=PASSWORD port=993 ssl=1 project=issue_repo tracker=Issue allow_override=project,tracker,priority


Gmail pop 서비스 사용하는 경우 crontab -e

0,5,10,15,20,25,30,35,40,45,50,55 * * * * rake -f /opt/webRoot/redmine/Rakefile redmine:email:receive_pop3 RAILS_ENV="production" host=pop.gmail.com username=redmine@abydos.co.kr password=PASSWORD port=465 ssl=1 project=issue_repo tracker=Issue allow_override=project,tracker,priority


설정이 끝났습니다. 이제 여러분이 redmine@abydos.co.kr 에게 쓰는 메일은 기본적으로 issue_repo 라는 프로젝트로 Issue 라는 tracker로 자동으로 등록됩니다. 너무 간단하죠 :-)

뒤의 옵션 중 allow_override 는 메일의 본문에서 적는 내용을 우선해서 등록하라는 의미입니다.


2) 이메일을 보내서 등록된 이슈 확인


지금부터 이메일 본문에 아래의 내용이 있으면 이슈가 등록됩니다.

Project: 프로젝트아이디
Tracker: Issue(결함, 새기능, 지원, Issue)
Priority: 보통(낮음, 보통, 높음, 긴급, 즉시)
Status: 신규(신규, 진행, 해결, 의견, 완료, 거절)
Category: 설정한 카테고리
Assigned To: 홍길동(또는 id)



문제가 생겨서 진행과정을 디버깅하는 경우에는 맨뒤에 --trace 를 붙여서 실행하시면 됩니다.



참고) 레드마인 공식사이트에서 제공하는 관련 링크
http://www.redmine.org/projects/redmine/wiki/RedmineReceivingEmails




여러분 중에서도 아마 이런 고민을 해보신적이 있겠죠? 
우리회사는 아직 50명이 안되는 규모인데, 이메일은 회사도메인으로 만들어서 사용중이다.
직원이 한두명씩 늘어갈수록 외부기업에게 신청한 메일호스팅 서비스의 비용은 증가하고, 게다가 이메일 받은편지함의 용량은 쥐꼬리만큼씩 할당해줘서 자주 메일함을 백업받고 지워야한다. 뿐만 아니라 스팸필터링, 포워딩이 자유롭지 않고 아웃룩으로 pop3와 smtp를 연동해서 쓰기도 힘들다. 좋은 방법이 없을까?

얼마전 사무실에 찾아온 어떤 분이 자신의 회사 이메일 서비스를 옮기고 싶은데 설명을 좀 해달라고 하더군요. 구글링 해보면 좋은 자료가 많이 있지만, 뭐랄까 그냥 좀 쉽게 써볼까 해서 글을 작성해 보기로 했습니다.



소기업의 이메일서비스를 위한 대안 Google Apps 따라하기

구글앱스를 사용해서 자신의 도메인으로 메일을 사용하기 위한 절차는 3가지 단계를 거칩니다. 마지막 단계는 신청한 서비스가 정상작동인지 확인하는 것이죠.

1) 자신의 도메인에 대한 네임서버정보를 구글앱스 사용에 적합하게 변경합니다.
2) 자신의 도메인에 대한 네임서버를 변경합니다
3) Google Apps를 신청합니다.
4) 기다린 후 사용합니다.

1단계, 자신의 도메인에 대한 네임서버정보를 구글앱스 사용에 적합하게 변경합니다.
이게 무슨소리인지 궁금한게 많으시겠지만 일단은 따라해보시길 추천드립니다.
http://kr.dnsever.com 으로 방문하여 회원가입을 합니다. 이 곳은 무료로 자신의 도메인 네임서버를 웹기반에서 관리할 수 있도록 제공해주는 서비스 입니다. 회원가입은 일반적인 사이트 가입과 유사하므로 다음 그림과 같이 진행하시면 됩니다.
가입을 완료한 후 가입시 등록한 이메일에서 인증url을 클릭하여 사용여부를 확인해 줍니다.

로그인 후 구글앱스 사용에 적합하게 자신의 도메인을 설정해 줍니다.

새로운 도메인 추가

아래쪽의 템플릿 설정 부분에서 구글 도메인용 애플리케이션을 선택합니다
설정완료

여기까지 진행하셨다면 1단계를 무사히 마치고, 이제 자신의 도메인에 대한 네임서버를 지금 가입한 dnsever의 네임서버로 변경하는 2단계로 넘어갑니다. dnsever의 네임서버정보는 dnsever.com에서 로그인 하신 후 왼쪽하단의 메뉴에서 5개의 주소정보를 확인할 수 있습니다. 네임서버 변경을 위해서 복사해두세요.

2단계, 자신의 도메인에 대한 네임서버를 변경합니다
무슨 소리인지 좀 쉽게 이야기해볼까요. 
회사의 홈페이지에 abc.co.kr 이라는 도메인을 가지고 있다고 가정해보죠. 이 경우 도메인을 등록한 회사가 있을겁니다.(후이즈, 가비아 등의 도메인 등록대행처를 이용하는 경우가 대부분이시겠죠) 그 도메인 등록업체의 관리자 아이디와 비밀번호를 알아야 한다는 이야기 입니다. 도메인 등록업체의 관리자 아이디와 비밀번호를 알아내신 후 해당업체의 웹사이트로 로그인을 해서 자신의 도메인 네임서버를 1단계에서 만든 네임서버 정보로 변경합니다. (복사해두신 정보 기억나시죠?)

아래 그림의 도메인 대행업체 후이즈의 네임서버 변경화면입니다.


3단계, Google Apps를 신청합니다. 
다른 가이드의 경우에는 이 단계부터 시작하는 경우가 대부분 이더군요. 신청을 먼저하게 되면 여기저기 왔다갔다 하면서 작업을 해야하기 때문에 저는 이 단계를 마지막 단계로 구성했습니다. 
간혹, 무료 Google Apps를 신청하는 링크를 찾지못해서 비지니스로 가입하고 30일간 체험으로 사용하는 분이 있습니다. 하지만 그건 30일이 지나면 유료로 전환되는 방식이니, 아래의 링크를 이용해서 반드시 무료로 가입하시기 바랍니다.


가입 후 설정단계는 아래의 그림과 같습니다.

이 과정에서 자신의 도메인에 대한 관리권한이 있다는 사실을 증명해야 합니다. 자신의 도메인 웹사이트에 html파일을 만들어서 올릴수 있거나, 도메인의 네임서버에서 CNAME을 추가할 수 있거나 하는 두가지 방법중 하나를 선택해야 합니다. html 파일 업로드가 무슨 소리인지 모른다면 두번째 선택사항 CNAME을 선택하시고, 이전에 생성한 dnsever.com 에서 자신의 도메인 네임서버관리를 통하여 여기에서 제시하는 CNAME을 추가해 줍니다.


도메인에 대한 소유권을 확인받았다면, 이제 이메일이나 캘린더같은 서비스를 활성화 시켜야 사용가능합니다. 
아래의 표시한 부분을 클릭하면 서비스가 활성화 됩니다.

http://mail.abc.co.kr 도메인을 통해서 웹메일서비스를 사용하기 위해서 아래와 같이 변경합니다. 




4단계, 이제 Google Apps가 자신의 도메인 네임서버 정보를 확인 후 서비스를 제공하기를 기다리시면 됩니다.(보통 2일정도 소요됩니다)

nslookup 같은 도구를 이용해서 dns의 변경상태를 질의(윈도우 > cmd > nslookup > set q=mx> abc.co.kr 을 통해서)해보거나, 자신이 설정해 준 http://mail.abc.co.kr 주소로 접속하여 아래와 같은 정상적인 로그인 화면이 보인다면, 이제부터 Google Apps가 정상적으로 사용가능합니다.


기타 아웃룩으로 연동해서 사용하기 위한 pop3 또는 smtp의 설정이나, 기타 고급환경설정은 구글에서 제공하는 도움말을 참고하셔서 설정하세요.

최근에 문의하신 내용이 있어서 추가해 둡니다.

회사 도메인이3개가 있는데...모두 email 을 outlook 을 사용하고 있습니다.
도메인당 user 수는 모두 50개 미만이며, 서버/웹호스팅 업체 사용하고 있습니다.

1) googleapps 무료를 이용하고싶은데...무료도 MS outlook 과연동이되는지요?

  => 네, 50인이하의 도메인은 무료로 이용할 수 있으며, MS Outlook과의 연동도 이상없이 잘됩니다.

2) 기존 outlook 에 주고 받은 메일들을 이전할 수 있나요?

  => 가능합니다. 아래의 글을 참고하시기 바랍니다.
  아웃룩(Outlook)에서 지메일(G-mail)로 옮기기 (http://talk.mobizen.pe.kr/83)






'삽질로그' 카테고리의 다른 글

DNS 서버  (0) 2009.08.02
태그클라우드 만들기  (3) 2009.07.31
리눅스 파이어폭스 글꼴이 이상하다?  (0) 2009.07.17
온라인 설문조사를 구글로 해보기  (0) 2009.06.21
캐즘  (0) 2009.06.09

+ Recent posts