RoundCube 관련 설정 몇가지.
간단한 메일 서버와 간단한 웹메일 클라이언트를 구축해보았다.
메일 서버는 hMailServer를 웹메일 클라이언트는 RoundCube로 구성했다.
다만, RoundCube에서는 몇가지 설정할 것이 있어 해당 내용만 적는다.
1. 기본 도메인 설정.
왜 그런지 모르겠지만, 기본 도메인 설정이 없으면, local 호스트가 되거나, imap 서버 설정 정보를 기반으로 이메일 주소가 된다. 그래서 aaaa@localhost 라는 이메일 주소가 기본 주소가 되거나, 혹은 aaaa@imap.knoie.net 이런 식으로 되버렸다. 내가 원하는 것은 aaaa@knoie.net 인데 말이다.
그래서 설정 파일을 열어보았다.
설정파일은 config/defaults.inc.php 파일이다.
이중 다음과 같은 설정을 편집하면 된다.
그러면 각 개인들의 이메일 주소가 위와 같이 고정된다.
다만, 이처럼 설정하면 멀티도메인인 경우(하나의 메일서버에 여러개의 도메인을 걸쳐서 쓰는 경우) 문제가 발생할 듯 싶다. 고민 필요.
2. 첨부파일 제어
program/steps/mail/attachments.inc 파일에서 128줄 근처에 파일 체크하는 로직에 아래와 같은 코드를 넣으면 된다.
if($err = rcmail_check_ispdf($filename))
{
$ispdferr = true;
if (!in_array($err, $errors)) {
$OUTPUT->command('display_message', $err, 'error');
$OUTPUT->command('remove_from_attachment_list', $uploadid);
$errors[] = $err;
}
continue;
}
그리고 밑에 에러가 발생했을 때 분기별로 처리하는 로직이 있는데, 그 안에 else if 구분을 아래와 같이 추가해준다.
else if($ispdferr)
{
$msg = "Yon can upload only PDF";
}
맨 마지막에 rcmail_check_ispdf 함수를 만들어준다.
function rcmail_check_ispdf($filename)
{
$file_parts = pathinfo($filename);
if(!strcmp(strtolower($file_parts['extension']), 'pdf'))
return;
return "Yon can upload only PDF";
}
PDF 파일을 제외한 나머지 파일은 업로드 되지 않는다. 물론 체크로직을 좀더 그럴싸하게 정리하면, 더 많은 파일을 확장자로 조절할 수 있다.