postfixadmin скрипт создания ящика
Добавлено: 2010-03-15 15:19:24
Подскажите пожалуйста понять как в postfixadmin создается ящик юзера, какой скрипт за это ответственен? никак не понять, не могу найти стандартную функцию mail...
Где ты ничего не можешь сделать - ты ничего не должен хотеть
https://forum.lissyara.su/
Код: Выделить всё
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;
}
Гость писал(а):ящик создает postfix, а не pop3/imap сервер.
Просто нужен скрипт создания ящика, в инете нашел с использованием функции mail или типа такого
http://prootime.ru/php-send-email.html. Но это коряво.
Сказали смотреть как сделано в postfixadmin'е. Вот ищу и не могу найти это злополучный скрипт...
в потсфиксадминке, файлик функшионс.пхп там функция отправки писем...Гость писал(а):ящик создает postfix, а не pop3/imap сервер.
Просто нужен скрипт создания ящика, в инете нашел с использованием функции mail или типа такого
http://prootime.ru/php-send-email.html. Но это коряво.
Сказали смотреть как сделано в postfixadmin'е. Вот ищу и не могу найти это злополучный скрипт...