Как я могу распечатать сводку содержания Maildir при вхождении в оболочку?

chroot не должен влиять на производительность. Я не услышал ни о каком сравнительном тесте на нем, потому что это - действительно просто отображение между двумя пробелами.

Так или иначе, для Вашей проблемы, возможно, должно быть лучше использовать что-то как LXC. Вместо движущейся работы somethings можно просто создать LXC и сделать материал в этом LXC. LXC намного лучше, чем chroot и имеет действительно меньше недостатка.

Вы видите его как chroot v2.0. Насколько я знаю, это должно работы хорошо над CentOS 5. X.

1
21.08.2013, 13:57
2 ответа

Я нашел более короткий и более простой способ реализовать с Python.

Пример кода ниже.

#!/usr/bin/python

import mailbox
import email.utils
import os

mbox = mailbox.Maildir(os.environ['HOME'] + "/Maildir" )
mbox.lock()
spam = mbox.get_folder('INBOX.junk')
print "INBOX:"
for message in mbox:
    print "- [%s] %s:  \"%s\"" % ( message['date'], message['from'], message['subject'] )
print
print "SPAM messages:"
for message in spam:
    print "- [%s] %s:  \"%s\"" % ( message['date'], message['from'], message['subject'] )

mbox.close()
1
27.01.2020, 23:53

Вот то, что я придумал... сценарий Perl собственной разработки с помощью Почты:: Поле:: модуль Maildir CPAN.

#!/usr/bin/perl
use strict;
use Mail::Box::Maildir;

my $folder = new Mail::Box::Maildir folder=>"$ENV{HOME}/Maildir";

my $message;
my $messsages;
my $to;
my $from;
my $date;
my $subject;

print "********************************************************************************\n";
foreach $message( $folder->messages('ALL') ) {
    #print $message->{'MM_head'}, "\n";
    parse_header( $message->{'MM_head'} );
    print "   Date:  $date\n";
    print "   From:  $from\n";
    print "     To:  $to\n";
    print "Subject:  $subject\n";
    print "********************************************************************************\n";
}

exit 0;

sub parse_header {
    my @lines = split( /\n/, shift(@_) );
    undef $to;
    undef $from;
    undef $date;
    undef $subject;

    foreach ( @lines ) {
        if ( /^To:\s+?(.*)$/ ) {
            $to = $1;
        }
        elsif ( /^From:\s+?(.*)$/ ) {
            $from = $1;
        }
        elsif ( /^Date:\s+?(.*)$/ ) {
            $date = $1;
        }
        elsif ( /^Subject:\s+?(.*)$/ ) {
            $subject = $1;
        }
    }
}
0
27.01.2020, 23:53
  • 1
    я все еще думаю, что должна быть своего рода Ubuntu или пакет Debian, который я мог установить, который сделает то же самое. Если я не получаю лучших ответов, я могу попытаться упаковать свое решение для других. –  m0j0 19.07.2013, 04:04

Теги

Похожие вопросы