본문 바로가기

Engineering/Etc

Redmine 에서 Office365 메일 설정 하기

728x90

사무실에서 메일을 사용하는 방식이 직접 메일 서버를 구축하지 않고, 오피스365(Office365) 를 사용한다면 Redmine 에서 알람 설정을 다른 방식으로 해야 한다.


Redmine 을 설치한 서버에서 오피스365 를 거쳐서 회사 메일을 받기 위해 다음과 같이 진행한다. 방법은 Redmine 이 설치된 서버에 mail server 인 postfix 를 설치하고, office365 로 중계되도록(relay) 설정한다.


Office 365 에 커넥터 설정

relayhost 설정을 하기 위해서는 office 365 - "관리자 로그인" - "Office 365 관리센터" - "도메인" 에서 기본값으로 선택된 "회사 도메인 이름" 을 선택하고 "도메인 관리" 를 누르면 DNS 레코드 중 Exchange Online 부분의 형식이 MX 인 대상 주소값을 입력한다. (보통 ABC-com.mail.protection.outlook.com 형태로 보인다.)


그리고, "Exchange 관리 센터" - "메일 흐름" - "커넥터" 에서 적당한 이름으로 기본 설정값으로 해서 커넥터 하나를 추가한다. 온프레미스 서버(즉, 사무실에서 설치한 메일 서버)에서 보내는 메일을 오피스 365 에서 받을 수 있도록 하는 것이다.


postfix 설정

Redmine 이 설치된 서버가 Ubuntu 일 때 메일을 보내기 위해 보통 postfix 를 많이 사용하는데, office365 를 릴레이서버로 사용한다. 빨간 색 부분이 수정할 내용이다.

# vi /etc/postfix/main.cf

myhostname = anne-vm

alias_maps = hash:/etc/aliases

alias_database = hash:/etc/aliases

myorigin = /etc/mailname

mydestination = anne-vm, localhost.localdomain, localhost

relayhost = 회사도메인-com.mail.protection.outlook.com

mynetworks = 192.168.0.0/24 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128

mailbox_size_limit = 0

recipient_delimiter = +

inet_interfaces = all

inet_protocols = all

mynetworks 부분의 192.168.0.0/24 이 사내 IP 대역이다. 즉, 192.168.0.1 ~ 192.168.0.254 까지를 사용중이다. 뒤에 있는 IPv6 주소는 무시하자. 원래 설정내용에 포함된것이라서....


mail 명령어로 회사 메일로 가는지 확인한다.

# mail user1@회사도메인.com

Cc:

Subject: Test mail

This is test mail....


"ctrl + D" 입력


※ mail 테스트를 했는데 정작 메일이 안왔다면, /var/log/mail.log(CentOS 일 경우에는 /var/log/maillog) 로그 파일을 확인하자. 왠만하면 에러문을 보고 구글링으로 해결이 가능하다. 그런데, 다음과 같은 로그일 경우에는 block 를 풀기위해 MS 에 문의를 해야한다.


"Apr 23 18:03:41 catherine-vm postfix/smtp[16151]: 5CB2A2A13CF: to=<testuser@회사도메인.com>, relay=회사도메인-com.mail.protection.outlook.com[213.199.154.23]:25, delay=8823, delays=8814/0.05/3.4/6.3, dsn=5.7.1, status=bounced (host 회사도메인-com.mail.protection.outlook.com[213.199.154.23] said: 550 5.7.1 Service unavailable; Client host [121.138.172.201] blocked using FBLW15; To request removal from this list please forward this message to delist@messaging.microsoft.com (in reply to RCPT TO command))"


※ 아래와 같은 로그가 나온다면, /etc/postfix/main.cf 의 smtpd_use_tls 설정이 false 인지 확인해보자.


"Jun  2 17:52:37 redmine-svr postfix/smtpd[29820]: connect from localhost[127.0.0.1]

Jun  2 17:52:37 redmine-svr postfix/smtpd[29820]: lost connection after STARTTLS from localhost[127.0.0.1]

Jun  2 17:52:37 redmine-svr postfix/smtpd[29820]: disconnect from localhost[127.0.0.1]"


Redmine 의 mail 설정

# vi config/configuration.yml

default:

  # Outgoing emails configuration

  # See the examples below and the Rails guide for more configuration options:

  # http://guides.rubyonrails.org/action_mailer_basics.html#action-mailer-configuration

  email_delivery:

    delivery_method: :smtp

    smtp_settings:


      address: smtp.gmail.com

      port: 587

      domain: example.net

      authentication: :login

      user_name:

      password:

...


기본 설정값을 다음과 같이 변경한다. 

address 값의 Office 365 DNS 항목에서 보았던 주소값(또는 relayhost 서버주소)으로 변경한다.

default:

  email_delivery:

    delivery_method: :smtp

    smtp_settings:

#      tls: true

#      enable_starttls_auto: true

      address: 회사도메인-com.mail.protection.outlook.com

      port: 25

#      domain: 회사도메인

#      authentication: :login

#      user_name:

#      password: 

...


일감을 추가 또는 수정할때 마다 관련자들에게 메일이 전송되는데, 확인 버튼을 누르고 한참 시간이 걸린다면 mail 설정에서 async_ 를 추가한다. "production:" 을 설정하면 위의 "default:" 에서 같은 설정값을 덮어쓰게(override) 된다. 특정 옵션만 변경된다면 "production" 이나 "development" 에다가 추가하자.

production:

    delivery_method: :async_smtp

    async_smtp_settings:

      address: 회사도메인-com.mail.protection.outlook.com

      port: 25


 레드마인 일감에서 일감 변경을 해서 메일 전송 테스트를 하면 실제로 /var/log/mail.log 에는 메일전송했다는 로그가 안쌓인다. 메일이 보내졌는지 확인은 실제로 받아보면 알 수 있지만, 다른 방법으로 레드마인 로그를 확인할 수 있다.

# tail -f /opt/redmine/apps/redmine/htdocs/production.log


참고 사이트 :

http://pseg.or.kr/pseg/infouse/3051

http://serverfault.com/questions/42519/how-to-correct-postfix-relay-access-denied

http://www.redmine.org/projects/redmine/wiki/HowTo_configure_Redmine_to_mail_to_MS_Exchange_server

http://www.redmine.org/projects/redmine/wiki/FAQ

http://www.redmine.org/projects/redmine/wiki/EmailConfiguration