[한경숙]님이 남기신 글:
>안녕하세요.
>답글 고맙습니다.
>
>
>그런데 perl 스크립트의 date는 단지 email 내용에 찍는 date 이고,
제 경우 문제가 된 것은
>메일의 Header에서 Date가 제대로 처리되지 않았다는
것입니다.
>그렇다면 sendmail 에서 뭔가 문제가 발생한 것일까요?
>
>
>해당 CVS의 메일들의 Header를 확인하니,
>Date 부분이 Date: emonPortOptions=Port=smtp, Name=MTA 로 처리되어
있습니
>다.
>문제가 된 메일이 아닌 다른 메일의 경우 daum 에서 header 보기를
선택하여
>보니,
>Date Sun, 05 Jan 2003 18:40:12 +0900 (KST) 로 표시가 되어
있네요.
>제가 살펴본 Header를 첨부합니다.
>
>=========================================================================
>=====
>Return-Path: <test@xxx.xxx.xxx.xxx>
>Received: (from test@localhost)
> by xxx.xxx.xxx.xxx (8.11.4/8.11.4) id gA52jK220653;
> Tue, 5 Nov 2002 11:45:20 +0900
>Date: emonPortOptions=Port=smtp, Name=MTA
>Message-Id: <200211050245.gA52jK220653@xxx.xxx.xxx.xxx>
>From: CVS Loginfo <cvs@xxx.xxx.xxx.xxx>
>To: cvs@xxx.xxx.xxx.xxx
>Subject: [ cvs ] test
>Status: R
>X-Status: N
>=========================================================================
>=====
>
>Date 헤더가
>Date: emonPortOptions=Port=smtp, Name=MTA 로 표시된 경우,
>제가 어떻게 문제를 해결할 수 있을까요?
>고맙습니다..
>
>
헙...
센드메일 설정파일에 오류가 있군요.
Data 헤더는 RFC822에 의한 발신인의 날짜로 설정되는데
sendmail.cf 파일에서는 내부 매크로 $a 를 사용합니다.
예)
H?D?Date: $a
사용자 매크로를 정의할때는 Dx 또는 D{xxx} 와 같은 형태로
정의합니다(사용은
$x)
그런데 센드메일 설정파일에서 옵션(O) 설정에서
이 'O' 부분을 빼먹은 것 같군요.
즉
O DaemonPortOptions=Port=smtp, Name=MTA
이런식으로 설정되어야 하는데,
DaemonPortOptions=Port=smtp, Name=MTA
이렇게 설정되어 있는것 같군요.
(옵션 정의 'O', 영문 대문자 O 이 빠져있음)
후자와 같이 설정하면
D 정의로 매크로 a를 정의해 버린 결과가 되기때문에
$a = emonPortOptions=Port=smtp, Name=MTA
와 같이 되어 버립니다.
따라서
sendmail.cf 파일에서
DaemonPortOptions=Port=smtp, Name=MTA
을
O DaemonPortOptions=Port=smtp, Name=MTA
이렇게 수정하고 센드메일을 재가동하세요.
>
>
>[산이]님이 남기신 글:
>
>>[한경숙]님이 남기신 글:
>>
>>>안녕하세요.
>>>무척 오랜만에 들렀습니다. 매번 질문있을 때에만 이렇게
들러서 죄송.. ^^;;
>>
>>정말 오랜만이군요. ^.9
>>
>>>
>>>회사 개발팀의 자체 서버 관리도 맡고 있는데요. CVS를
운영합니다.
>>>그런데 얼마전에 이런 문제가 생겼습니다.
>>>
>>>CVS에 Users가 로그인해서 변경한 사항을 반영하면 자동으로
email을 발송하도록 합니다.
>>>이 때 loginfo.pl 이라는 perl로 만들어진 script가 sendmail로 email을
발송하게 하지요.
>>>
>>>loginfo.pl 에서는 users가 작성한 comment를 넣고, 그 작업의
시간을 date명령어를 실행하여 작업 시간 등을 기록한 email을
전송합니다.
>>>이 때, loginfo.pl 자체에서는 이메일이 발송되는 시간을 따로
기록하는 부분은 없습니다.
>>>즉, Outlook에 도착한 email의 format을 예로 들자면,
>>>==========================================================
>>>From: CVS Loginfo [mailto:cvs@cvs.xxxx.xxxx.xxxx]
>>>Sent: <- 이 부분에 표시되는 날짜와 시각
>>>To: cvs@cvs.xxxx.xxxx.xxxx
>>>Subject: [ test ] gshan
>>>==========================================================
>>>
>>>위의 Sent 부분은 sendmail이 작성하여 보내는 것으로 알고
있습니다.
>>>그런데, 막상 users에게 도착한 메일은 두 가지 유형의 문제가
있습니다.
>>>
>>>==========================================================
>>>유형 1)
>>>From: CVS Loginfo [mailto:cvs@cvs.xxxx.xxxx.xxxx]
>>>Sent: 없음
>>>To: cvs@cvs.xxxx.xxxx.xxxx
>>>Subject: [ test ] gshan
>>>==========================================================
>>>또는
>>>==========================================================
>>>유형 2)
>>>From: CVS Loginfo [mailto:cvs@cvs.xxxx.xxxx.xxxx]
>>>Sent: Monday, January 01, 1601 9:00 AM
>>>To: cvs@cvs.xxxx.xxxx.xxxx
>>>Subject: [ test ] gshan
>>>==========================================================
>>>
>>>즉, 날짜와 시간이 아예 없음으로 표시되는 경우와 아예 잘못
표시되어 오는 경우 입니다.
>>>그러나 linux 시스템에서 date 명령을 수행하여 check 하면 제
시간이 나옵니다.
>>>무엇이 문제이며 어떻게 해결할 수 있을까요?? +_+
>>>
>>>
>>>
>>
>>시스템 `date` 명령어를 사용하지 말고
>>perl의 time()과 gmdate() 함수를 사용해 보세요.
>>
>>예)
>>$date = gmtime(time() + (3600*9)) . ' KST';
>>
>>이런식으로.
>>
>
>========================================
>
========================================
|