까먹기 전에 기록용으로 남기는 포스팅이므로 아주 짧고 불친절하게 설명한다.
bitnami redmine stack 이 제대로 깔렸다면 http://localhost/ 로 들어가면 bitnami 페이지가 나오고, 거기서 redmine 클릭하면 redmine 페이지가 나올 것이다.
일단 발송을 위한 gmail 계정을 만들자. 물론 자신의 gmail 계정을 사용해도 되지만, 설정파일에 자신의 e-mail과 gmail 패스워드가 고스란히 표현되기 때문에 신규 계정을 만드는 것을 추천.
계정을 만들었다면, 이제 redmine 이 gmail smtp 를 사용할 수 있도록 설정하자. 그냥 하면 안되고, 플러그인을 하나 설치해야 한다. 전체 내용은 Setup Redmine to send email using GMail 에 잘 나와있다. 그런데 내 경우 파일이 하나도 다운로드 되지 않았다. 이 경우 git 페이지에 가서 그냥 무식하게 파일을 하나하나 local 로 복사해버리면 된다. 내 경우 C:\Program Files\BitNami Redmine Stack\apps\redmine\vendor\plugins\action_mailer_optional_tls 폴더 밑에 git 페이지의 구조대로 고스란히 퍼 왔다. 참고로 redmine gmail 로 검색해보면 git repository 가 아닌 svn repository 주소가 검색될 수 있는데, 이 plug-in 을 받으면 에러난다. 반드시 git repository 에 있는 plug-in 을 받아야 한다.
plug-in 깔았다면 redmine service 를 다시 시작하자. 이제 redmine 설정 페이지에서 test 메일을 발송해보자. 잘 날아가면 ok.
C:\Program Files\BitNami Redmine Stack\apps\redmine\app\controllers\issues_controller.rb 을 열어보면 이슈 등록,수정을 담당하는 코드가 있다. RoR 로 개발해 본 경험이 파일을 찾는데 도움이 되네. 대략 196 line 정도를 보면 다음 코드가 있다.
이 부분이 이슈 수정되었으면 메일 날리라는 부분이다. 그럼 난 종료에만 관심이 있으므로 if 문으로 위 내용을 감싸주자.
해결 끝.
1. redmine 설치
bitnami 를 이용하면 아주아주 쉽게 설치할 수 있다. 만약 이전에 깔아놓은 mysql 등의 DBMS, svn 등의 형상서버, apache, ruby 등을 활용하고자 한다면 해당하지 않을 수 있는데, 아무것도 없는 상태에서 redmine 만 돌리고자 한다면 정말정말 편하게 한방에 깔 수 있다. bitnami redmine 페이지에서 redmine stack 을 다운받아 설치하자. 주의할 점은 설치 중 이름 등등을 넣는 화면에서 한글을 입력하면 DB 초기화 시 에러나서 수동으로 migration 해 줘야 한다. 설치할 때는 그냥 안전하게 영어로 입력하자. 한글 입력시 설치 오류 문제는 내가 forum에 보고했다.bitnami redmine stack 이 제대로 깔렸다면 http://localhost/ 로 들어가면 bitnami 페이지가 나오고, 거기서 redmine 클릭하면 redmine 페이지가 나올 것이다.
2. gmail smtp 설정
메일 발송 없는 이슈트레킹 시스템은 앙꼬없는 찐빵이다. 절대 사람들은 주기적으로 ITS 를 확인하지 않는다. 메일 폭탄은 피해야 하겠지만, 하여간 이슈 상태 변경 시 (적어도 등록/해결 시) 메일 보내줘야 한다. 메일 발송 설정이 꽤나 골치아프다. 별도의 smtp 서버 쓸 게 없다면 gmail 의 smtp 를 사용하자.일단 발송을 위한 gmail 계정을 만들자. 물론 자신의 gmail 계정을 사용해도 되지만, 설정파일에 자신의 e-mail과 gmail 패스워드가 고스란히 표현되기 때문에 신규 계정을 만드는 것을 추천.
계정을 만들었다면, 이제 redmine 이 gmail smtp 를 사용할 수 있도록 설정하자. 그냥 하면 안되고, 플러그인을 하나 설치해야 한다. 전체 내용은 Setup Redmine to send email using GMail 에 잘 나와있다. 그런데 내 경우 파일이 하나도 다운로드 되지 않았다. 이 경우 git 페이지에 가서 그냥 무식하게 파일을 하나하나 local 로 복사해버리면 된다. 내 경우 C:\Program Files\BitNami Redmine Stack\apps\redmine\vendor\plugins\action_mailer_optional_tls 폴더 밑에 git 페이지의 구조대로 고스란히 퍼 왔다. 참고로 redmine gmail 로 검색해보면 git repository 가 아닌 svn repository 주소가 검색될 수 있는데, 이 plug-in 을 받으면 에러난다. 반드시 git repository 에 있는 plug-in 을 받아야 한다.
plug-in 깔았다면 redmine service 를 다시 시작하자. 이제 redmine 설정 페이지에서 test 메일을 발송해보자. 잘 날아가면 ok.
3. 만약 한글 메일 제목이 깨진다면?
특정 사용자들에게서 메일 제목이 깨져서 온다는 의견을 접수받았다. 우선 gmail 의 설정 페이지에서 모든 발송을 utf-8 기반으로 하도록 했다. 여전히 깨진다. 그래서 mailer-subject-base64.patch 를 적용하니 잘 해결되었다.4. 메일이 너무 많이 와서 짜증난다면?
이 부분은 일종의 사파적인 해결책이라 할 수 있겠다. 기본적으로 이슈에 대한 모든 변경이 발생할 경우 메일이 발송되는데, 너무 많은 메일은 너무 적은 메일과 마찬가지로 문제이다. 너무 메일이 많이 날아가면 다들 걍 지워버리는 상황이 발생할 수 있다. 이슈에 대한 담당자가 한 명이고, 담당자 제외한 사람들은 이슈의 등록과 해결에만 관심이 있을 경우, 등록/해결 시점에만 메일을 날리면 된다. 자, 이제 직접 소스를 뜯어고칠 시점이다.C:\Program Files\BitNami Redmine Stack\apps\redmine\app\controllers\issues_controller.rb 을 열어보면 이슈 등록,수정을 담당하는 코드가 있다. RoR 로 개발해 본 경험이 파일을 찾는데 도움이 되네. 대략 196 line 정도를 보면 다음 코드가 있다.
Mailer.deliver_issue_edit(journal) if Setting.notified_events.include?('issue_updated')이 부분이 이슈 수정되었으면 메일 날리라는 부분이다. 그럼 난 종료에만 관심이 있으므로 if 문으로 위 내용을 감싸주자.
if @issue.closed?
Mailer.deliver_issue_edit(journal) if Setting.notified_events.include?('issue_updated')
end해결 끝.




덧글
땅곰 2009/12/15 22:38 # 삭제 답글
잘 보았습니다. 덕분에 많은 도움이 되었네요. 캄사합니다!