--- loncom/interface/loncommon.pm 2007/12/01 03:42:47 1.617 +++ loncom/interface/loncommon.pm 2007/12/03 22:58:46 1.618 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # a pile of common routines # -# $Id: loncommon.pm,v 1.617 2007/12/01 03:42:47 albertel Exp $ +# $Id: loncommon.pm,v 1.618 2007/12/03 22:58:46 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -7636,6 +7636,66 @@ sub restore_settings { } } +####################################################### +####################################################### + +=pod + +=head1 Domain E-mail Routines + +=over 4 + +=item &build_recipient_list + +Build recipient lists for three types of e-mail: +(a) Error Reports, (b) Package Updates, (c) Help requests, generated by +lonerrorhandler.pm, CHECKRPMS and lonhelpdesk.pm respectively. + +Inputs: +Request object, defmail (scalar - email address of default recipient), +mailing type (scalar - errormail, packagesmail, or helpdeskmail), +defdom (domain for which to retrieve configuration settings). + +Returns: comma separated list of addresses to which to send e-mail. + +=cut + +############################################################ +############################################################ +sub build_recipient_list { + my ($r,$defmail,$mailing,$defdom) = @_; + my @recipients; + my $otheremails; + my $defdom = $r->dir_config('lonDefDomain'); + my %domconfig = + &Apache::lonnet::get_dom('configuration',['contacts'],$defdom); + if (ref($domconfig{'contacts'}) eq 'HASH') { + if (ref($domconfig{'contacts'}{$mailing}) eq 'HASH') { + my @contacts = ('adminemail','supportemail'); + foreach my $item (@contacts) { + if ($domconfig{'contacts'}{$mailing}{$item}) { + push(@recipients,$domconfig{'contacts'}{$item}); + } + $otheremails = $domconfig{'contacts'}{$mailing}{'others'}; + } + } else { + push(@recipients,$r->dir_config('lonAdmEMail')); + } + } + if ($defmail ne '') { + push(@recipients,$defmail); + } + my $recipientlist = join(',',@recipients); + if ($otheremails) { + if ($recipientlist ne '') { + $recipientlist .= ','.$otheremails; + } else { + $recipientlist = $otheremails; + } + } + return $recipientlist; +} + ############################################################ ############################################################