postfixadmin скрипт создания ящика

Проблемы с установкой, настройкой и работой системных и сетевых программ.

Модераторы: GRooVE, alexco

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Гость
проходил мимо

postfixadmin скрипт создания ящика

Непрочитанное сообщение Гость » 2010-03-15 15:19:24

Подскажите пожалуйста понять как в postfixadmin создается ящик юзера, какой скрипт за это ответственен? никак не понять, не могу найти стандартную функцию mail...

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: postfixadmin скрипт создания ящика

Непрочитанное сообщение ProFTP » 2010-03-15 15:25:23

зачем вам это надо?

вроде бы вставить в таблицу mailbox и таблицу alias

и отправить письмо на этот адресс, чтобы Courier/Dovecot создал ящик

Код: Выделить всё

sub insert_mailbox {
    my $self = shift;

    my ( $pwc, $maildir, $salt );
    my @smtp_out = ();

    my $fount;
    foreach my $value ( values( %{ $self->{he} } ) ) {
        if ( $value == 1 ) { $fount = 1; last; }
    }

    if ( !$fount ) {

        if ( $self->{se}->{type_passwd} eq 'md5crypt' ) {
            $self->{p}->{fPassword} =
              $func->md5crypt( $self->{p}->{fPassword} );
        }

        $self->{p}->{email_smtp} =
          $self->{p}->{fUsername} . '@' . $self->{p}->{fDomain};

        my $sth = $self->{dbh}->prepare( '
          INSERT INTO mailbox (username,
                               password,
                               name,
                               maildir,
                               quota,
                               domain,
                               created,
                               modified,
                               active) 
              VALUES (?,?,?,?,?,?,NOW(),NOW(),?)
               ' );

        $sth->execute(
            $self->{p}->{email_smtp}, $self->{p}->{fPassword},
            $self->{p}->{fName},      $self->{p}->{maildir},
            $self->{p}->{fQuota},     $self->{p}->{fDomain},
            $self->{p}->{fActive}
        );
        $sth->finish();

        my $sth = $self->{dbh}->prepare(
            'INSERT INTO alias (address,
                                                  goto,
                                                  domain,
                                                  created,
                                                  modified,
                                                  active) 
                               VALUES (?,?,?,NOW(),NOW(),?)
               '
        );

        $sth->execute(
            $self->{p}->{email_smtp}, $self->{p}->{email_smtp},
            $self->{p}->{fDomain},    $self->{p}->{fActive}
        );
        $sth->finish();

        if ( $self->{p}->{fMail} eq 'on' ) {

            $self->SUPER::sent_email(@_);

        }
        $self->{he}->{mailbox_added} = 1;
        $self->{he}->{EMAIL_ADD}     = $self->{p}->{email_smtp};
    }



    return $self;
}

Код: Выделить всё

sub sent_email {

    my $self     = shift;
    my @smtp_out = ();

    use IO::Socket;
    my $socket = IO::Socket::INET->new( PeerAddr => 'localhost:smtp(25)' )
      or die "ERROR: $!";
    my $answer_data;

    sysread $socket, $answer_data, 255;
    $smtp_out[0] = "1: $answer_data";

    syswrite $socket, "helo $self->{'se'}->{'smtp_server'}\r\n";
    sysread $socket, $answer_data, 255;
    $smtp_out[1] = "2: $answer_data";

    syswrite $socket, "mail from:<$self->{'se'}->{'mail_from'}>\r\n";
    sysread $socket, $answer_data, 255;
    $smtp_out[2] = "3: $answer_data";

    syswrite $socket, "rcpt to:<$self->{'p'}->{'email_smtp'}>\r\n";
    sysread $socket, $answer_data, 255;
    $smtp_out[3] = "4: $answer_data";

    syswrite $socket, "data\r\n";
    sysread $socket, $answer_data, 255;
    $smtp_out[4] = "5: $answer_data";

    syswrite $socket, "$self->{'se'}->{'text_new_mailbox'}\r\n";

    syswrite $socket, ".\r\n";
    sysread $socket, $answer_data, 255;
    $smtp_out[5] = "6: $answer_data";

    syswrite $socket, "quit\r\n";
    sysread $socket, $answer_data, 255;
    $smtp_out[7] = "7: $answer_data";

    close $socket;

    @smtp_out = map +{ answer => $_ }, @smtp_out;
    $self->{he}->{SOCKET} = \@smtp_out;

    return $self;
}
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Гость
проходил мимо

Re: postfixadmin скрипт создания ящика

Непрочитанное сообщение Гость » 2010-03-15 15:47:16

ящик создает postfix, а не pop3/imap сервер.
Просто нужен скрипт создания ящика, в инете нашел с использованием функции mail или типа такого
http://prootime.ru/php-send-email.html. Но это коряво.
Сказали смотреть как сделано в postfixadmin'е. Вот ищу и не могу найти это злополучный скрипт...

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: postfixadmin скрипт создания ящика

Непрочитанное сообщение terminus » 2010-03-15 15:57:50

Гость писал(а):ящик создает postfix, а не pop3/imap сервер.
Просто нужен скрипт создания ящика, в инете нашел с использованием функции mail или типа такого
http://prootime.ru/php-send-email.html. Но это коряво.
Сказали смотреть как сделано в postfixadmin'е. Вот ищу и не могу найти это злополучный скрипт...

ящик создает сортировшик когда на него приходит первое письмо. если как сортировщик используется LDA из Dovecot, то создает он. Если сортировкой занимается сам постфикс, то он (я такую схему не реализовавал).
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: postfixadmin скрипт создания ящика

Непрочитанное сообщение ProFTP » 2010-03-15 17:15:04

Гость писал(а):ящик создает postfix, а не pop3/imap сервер.
Просто нужен скрипт создания ящика, в инете нашел с использованием функции mail или типа такого
http://prootime.ru/php-send-email.html. Но это коряво.
Сказали смотреть как сделано в postfixadmin'е. Вот ищу и не могу найти это злополучный скрипт...
в потсфиксадминке, файлик функшионс.пхп там функция отправки писем...
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение