Таким образом, я получил вызов рано этим утром о клиенте, бывшем должном видеть, какую электронную почту у них есть ожидание, которое будет поставлено, находясь в нашем вторичном почтовом сервере. Их ссылка для основного сервера имела (все еще), сниженный в течение двух дней, и они должны были видеть свою электронную почту.
Таким образом, я описал быстрый сценарий Perl для использования mailq в сочетании с посткошкой для дампа каждой электронной почты для их адреса в отдельные файлы, tar'd это и отослал его. Ужасный код, я знаю, но это было срочно.
Мое решение работает хорошо, в котором оно, по крайней мере, высказывает необработанное мнение, но я думал сегодня вечером, что было бы хорошо, если бы у меня было решение, где я мог предоставить их почтовые вложения и возможно удалить некоторый текст заголовка "мусора" также. Большинство важных электронных писем, кажется, имеет PDF или подобный присоединенный.
Я озирался, но единственный метод просмотра файлов очереди, которые я вижу, является командой посткошки, и я действительно не хочу писать свой собственный синтаксический анализатор - таким образом, я задавался вопросом, сделал ли какой-либо из Вас уже так или знает о лучшей команде для использования?
Вот код для моего текущего решения:
#!/usr/bin/perl
$qCmd="mailq | grep -B 2 \"someemailaddress@isp\" | 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\"`;
}
Любой совет ценится.
Здесь вы можете найти модуль Postfix :: Parse :: Mailq , а также pfcat ] скрипт.