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
커맨드 입력 후 메일함에 가서 메일이 왔는지 확인하고 컨테이너를 재시작하면 됩니다.
댓글