package Clients::Camelot::Mail::Lite; use strict; use POE::Component::IKC::ClientLite; use Carp; ###################################################################### sub mail { __open() or croak $POE::Component::IKC::ClientLite::error; my $__ARGS={@_}; croak "Wrong number of parameters" unless ref($__ARGS) eq 'HASH' ? 3 == keys %$__ARGS : 3 == @$__ARGS; croak "Required parameter subject missing" if not defined (ref $__ARG eq 'HASH' ? $__ARG->{subject} : $__ARG->[0]); my $subject = (ref $__ARG eq 'HASH' ? $__ARG->{subject} : $__ARG->[0]); croak "Parameter subject must be a scalar" if ref $subject; croak "Required parameter text missing" if not defined (ref $__ARG eq 'HASH' ? $__ARG->{text} : $__ARG->[1]); my $text = (ref $__ARG eq 'HASH' ? $__ARG->{text} : $__ARG->[1]); croak "Parameter text must be a scalar" if ref $text; my @to; { my $t=(ref $__ARG eq 'HASH' ? $__ARG->{to} : $__ARG->[2]); croak "Parameter to must be an array reference or scalar" if (ref($t)||'ARRAY') ne 'ARRAY'; @to = ref $t ? @$t : $t; } $poe->post(q(Clients_Camelot_Mail/mail), [@_]); } ###################################################################### sub pgp5mail { __open() or croak $POE::Component::IKC::ClientLite::error; my $__ARGS={@_}; croak "Wrong number of parameters" unless ref($__ARGS) eq 'HASH' ? 3 == keys %$__ARGS : 3 == @$__ARGS; croak "Required parameter subject missing" if not defined (ref $__ARG eq 'HASH' ? $__ARG->{subject} : $__ARG->[0]); my $subject = (ref $__ARG eq 'HASH' ? $__ARG->{subject} : $__ARG->[0]); croak "Parameter subject must be a scalar" if ref $subject; croak "Required parameter text missing" if not defined (ref $__ARG eq 'HASH' ? $__ARG->{text} : $__ARG->[1]); my $text = (ref $__ARG eq 'HASH' ? $__ARG->{text} : $__ARG->[1]); croak "Parameter text must be a scalar" if ref $text; my @to; { my $t=(ref $__ARG eq 'HASH' ? $__ARG->{to} : $__ARG->[2]); croak "Parameter to must be an array reference or scalar" if (ref($t)||'ARRAY') ne 'ARRAY'; @to = ref $t ? @$t : $t; } $poe->post(q(Clients_Camelot_Mail/pgp5mail), [@_]); } ###################################################################### sub reload { __open() or croak $POE::Component::IKC::ClientLite::error; my $__ARGS={@_}; croak "Wrong number of parameters" unless ref($__ARGS) eq 'HASH' ? 0 == keys %$__ARGS : 0 == @$__ARGS; $poe->post(q(Clients_Camelot_Mail/reload), [@_]); } ###################################################################### require Exporter; use vars qw($poe @EXPORT_OK @ISA); @ISA=qw(Exporter); sub __open { return 1 if $poe; require POE::Component::IKC::ClientLite; $poe=POE::Component::IKC::ClientLite::create_ikc_client( port=>21502, timeout=>10, ); return unless $poe; return 1 unless $INC{'Apache.pm'}; return 1 unless Apache->request; Apache->request->register_cleanup(\&_close); return 1; } sub __close { return unless $poe; $poe->disconnect; warn "Closing POE connection"; undef($poe); } END { $poe->disconnect; } @EXPORT_OK=qw(mail pgp5mail reload); 1; __DATA__ __DATA__ Generated-on: Tue Sep 28 20:09:44 1999 Generated-from: /home/wcamelot/prive/user-daemon/mail.interface POE::Interface: 0.01 XML::DOM: 1.25 XML::Parser: 2.23