Diff for /loncom/interface/lonnotify.pm between versions 1.8 and 1.9

version 1.8, 2005/11/15 21:08:47 version 1.9, 2005/12/09 00:08:35
Line 273  $breadcrumbs Line 273  $breadcrumbs
 <form method="post" name="$formname">  <form method="post" name="$formname">
 ENDONE  ENDONE
   
     foreach my $server (keys(%sentmail)) {      foreach my $msgid (keys(%sentmail)) {
         foreach my $msgid (keys(%{$sentmail{$server}})) {          my %content = &unpackagemail($sentmail{$msgid});
             my %content = &unpackagemail($sentmail{$server}{$msgid});          $msgcount ++;
             if (defined($dcmail{$msgid})) {          %{$dcmail{$msgid}} = ();
                 foreach my $user (keys(%{$content{'recipients'}})) {          foreach my $item (keys(%content)) {
               if ($item eq 'recipients') {
                   foreach my $user (keys(%{$content{recipients}})) {
                     $dcmail{$msgid}{recipients}{$user} = $content{recipients}{$user};                      $dcmail{$msgid}{recipients}{$user} = $content{recipients}{$user};
                 }                  }
             } else {              } else {
                 $msgcount ++;                  $dcmail{$msgid}{$item} = $content{$item};
                 %{$dcmail{$msgid}} = ();  
                 foreach my $item (keys(%content)) {  
                     if ($item eq 'recipients') {  
                         foreach my $user (keys(%{$content{recipients}})) {  
                             $dcmail{$msgid}{recipients}{$user} = $content{recipients}{$user};  
                         }  
                     } else {  
                         $dcmail{$msgid}{$item} = $content{$item};  
                     }  
                 }  
             }              }
         }          }
     }      }
Line 849  sub form_elements { Line 841  sub form_elements {
   
 sub store_mail {  sub store_mail {
     my ($subject,$message,$domain,$recipients,$attachmenturl,$ltext) = @_;      my ($subject,$message,$domain,$recipients,$attachmenturl,$ltext) = @_;
     my %servers = ();      my $msgid;
     my $msgid=&packagemail($subject,$message,$domain,      ($msgid,$message) = &packagemail($subject,$message,$domain,$recipients,
                            $recipients,\%servers,$attachmenturl);                                                                 $attachmenturl);
 # Store in dc email db files on appropriate servers.  # Store in dc email db files on primary library server for domain.
     foreach my $server (keys(%servers)) {      my $server = $Apache::lonnet::domain_primary{$domain};
         unless (&Apache::lonnet::dcmailput($domain,$msgid,\%servers,$server) eq 'ok') {      if (defined($server)) {
             &Apache::lonnet::logthis('Storage of dc mail failed for domain'.$domain.' for server: '.          unless (&Apache::lonnet::dcmailput($domain,$msgid,$message,$server) 
                       $server.'.  Message ID was '.$msgid);                                                              eq 'ok') {
               &Apache::lonnet::logthis('Storage of dc mail failed for domain'.
                    $domain.' for server: '. $server.'.  Message ID was '.$msgid);
         }          }
       } else {
           &Apache::lonnet::logthis('Storage of dc mail failed for domain'.
              $domain.' as no primary server identified. Message ID was '.$msgid);
     }      }
 }  }
   
 sub packagemail {  sub packagemail {
     my ($subject,$message,$dom,$recipients,$servers,$attachmenturl,$ltext) = @_;      my ($subject,$message,$dom,$recipients,$attachmenturl) = @_;
     my %record = ();      my %record = ();
     my $partsubj=$subject;      my $partsubj=$subject;
     $partsubj=&Apache::lonnet::escape($partsubj);      $partsubj=&Apache::lonnet::escape($partsubj);
Line 893  sub packagemail { Line 890  sub packagemail {
         my ($username,$email) = split(/:/,$recip);          my ($username,$email) = split(/:/,$recip);
         $username = &Apache::lonnet::unescape($username);          $username = &Apache::lonnet::unescape($username);
         $email = &Apache::lonnet::unescape($email);          $email = &Apache::lonnet::unescape($email);
         my ($uname,$udom) = split(/:/,$username);          $username = &HTML::Entities::encode($username,'<>&"');
         my $uhom=&Apache::lonnet::homeserver($uname,$udom);          $email = &HTML::Entities::encode($email,'<>&"');
         if ($uhom ne 'no_host') {          $result .= '<recipient username="'.$username.'">'.
             $username = &HTML::Entities::encode($username,'<>&"');  
             $email = &HTML::Entities::encode($email,'<>&"');  
             $record{$uhom} .= '<recipient username="'.$username.'">'.  
                               $email.'</recipient>';                                $email.'</recipient>';
         }  
     }  
     foreach my $server (keys(%record)) {  
         $$servers{$server} = $result.$record{$server};  
     }      }
     return $msgid;      return ($msgid,$result);
 }  }
   
 sub unpackagemail {  sub unpackagemail {

Removed from v.1.8  
changed lines
  Added in v.1.9


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>