플로렌스라는 개발자

Synology Gitlab Mail 설정

Synology 2020.09.28 댓글 0 Plorence

jboxberger/synology-gitlab(GitLab 12.9.2-0055)을 사용했습니다.

Sendmail대신 SMTP 사용하기

Gitlab 설치시 delivery_method는 sendmail입니다.

sendmail을 컨테이너 내부에 설치해서 사용해도 되겠지만, 컨테이너 재시작 후 sendmail 서비스를 자동으로 실행할 방법이 없어서 SMTP을 사용합니다.
이렇게 사용한다 쳐도 스팸 메일로 분류되어서 상당히 불편했습니다.
더군다나 속도도 SMTP보다 훨씬 느렸고요.

컨테이너 환경 변수 추가

키는 SMTP_ENABLED, 값은 TRUE로 추가해줍니다.
적용 후 컨테이너를 재시작하시면 됩니다.

컨테이너 접속

ssh -p 포트 아이디@주소
sudo docker exec -it 컨테이너명 bash

production.rb 수정

cd config/environments
vi production.rb

그 다음 67번째 라인으로 갑니다.

config.action_mailer.delivery_method = :sendma
# Defaults to:
# # config.action_mailer.sendmail_settings = {
# #   location: '/usr/sbin/sendmail',
# #   arguments: '-i -t'
# # }

거의 이렇게 되어있을겁니다.

config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
    address:              'mail.domain.com',
    port:                 587,
    domain:               'yourdomain.com',
    :user_name            => 'email@yourdomain.com',
    :password             => 'yourpassword',
    :authentication       => :login,
    enable_starttls_auto: true,
}

config.action_mailer.delivery_method의 값은 :smtp으로 변경해주고, smtp_settings는 맞춰서 수정하면 됩니다.

smtp_settings 옵션 설정은 rails mail으로 검색하시면 많이 나옵니다.

그리고 ESC > :q 입력 > Enter로 빠져나옵니다.

메일 전송 테스트

sudo -u git -H bundle exec rails console -e production

위 커맨드를 입력하면 시간이 조금 소요됩니다. irb(main):001:0>이 뜰때까지 기다려주세요.

Notify.test_email('받는 메일 주소','제목', '내용').deliver_now

커맨드 입력 후 메일함에 가서 메일이 왔는지 확인하고 컨테이너를 재시작하면 됩니다.

댓글

0