그래서 저는 오늘 아침에 보조 메일 서버에 배달되기 위해 어떤 이메일이 배달되는지 기다릴 필요가있는 클라이언트에 대해 전화를 받았습니다. 메인 서버에 대한 그들의 링크는 (아직) 2 일간 다운되어 이메일을 볼 필요가있었습니다.postfix 메일 큐 파일을보기위한 postcat보다 우수한 도구가 있습니까?
그래서 Postcat과 함께 mailq를 사용하여 각 이메일을 별도의 파일에 덤프하고 tar'd하여 전송했습니다. 끔찍한 코드, 나도 알아,하지만 긴급했다.
내 솔루션은 적어도 원시보기를 제공합니다.하지만 이메일 첨부 파일을 제공하고 일부 "가비지"헤더 텍스트를 제거 할 수있는 솔루션이 있다면 오늘 밤 좋을 것이라고 생각했습니다. 중요한 전자 메일의 대부분은 PDF 또는 유사한 첨부 파일이있는 것 같습니다.
나는 주변을 둘러 보았지만 내가 볼 수있는 대기열 파일을 볼 수있는 유일한 방법은 postcat 명령이며, 내 자신의 파서를 쓰고 싶지는 않습니다. 그래서 여러분 중 누군가가 이미 해본 적이 있는지 궁금합니다. 그래서, 또는 더 나은 명령을 알고 사용할 수 있습니까? 감사
#!/usr/bin/perl
$qCmd="mailq | grep -B 2 \"[email protected]\" | cut -d \" \" -f 1";
@data = split(/\n/, `$qCmd`);
$i = 0;
foreach $line (@data)
{
$i++;
$remainder = $i % 2;
if ($remainder == 0)
{
next;
}
if ($line =~ /\(/ || $line =~ /\n/ || $line eq "")
{
next;
}
print "Processing: " . $line . "\n";
`postcat -q $line > $line.email.txt`;
$subject=`cat $line.email.txt | grep "Subject:"`;
#print "SUB" . $subject;
#`cat $line.email.txt > \"$subject.$line.email.txt\"`;
}
어떤 조언 :
여기에 내 현재 솔루션에 대한 코드입니다.
솔루션이 Perl 인 경우 신경 씁니까? 나는 당신이 할 수있는 어떤 방법 으로든 직업을 갖기를 원한다고 생각한다. :) –
나는 처음에 bash (backticks의 사용량이 많음)에서 실제로 작성했지만 modulus 연산자를 사용하여 문제를 발견했다. (나는 돌진했다). 언어를 모르는 경우에는 적어도 배워서 뭔가 해킹 할 수 있습니다. 내 유일한 이의는 아마도 어셈블러에 있다면 어떨까요? : P – Geekman