Diff for /loncom/interface/lonmsg.pm between versions 1.203 and 1.207

version 1.203, 2007/05/02 20:26:08 version 1.207, 2007/05/09 21:04:51
Line 163  sub packagemsg { Line 163  sub packagemsg {
     if (defined($recipid)) {      if (defined($recipid)) {
         $result.= '<recipid>'.$recipid.'</recipid>';          $result.= '<recipid>'.$recipid.'</recipid>';
     }      }
       if ($env{'form.can_reply'} eq 'N') {
           $result .= '<noreplies>1</noreplies>';
       }
       if ($env{'form.reply_to_addr'}) {
           my ($replytoname,$replytodom) = split(/:/,$env{'form.reply_to_addr'});
           if (!($replytoname eq $env{'user.name'} && $replytodom eq $env{'user.domain'})) {
               if (&Apache::lonnet::homeserver($replytoname,$replytodom) ne 'no_host') {
                   $result .= '<replytoaddr>'.$env{'form.reply_to_addr'}.'</replytoaddr>';
               }
           }
       }
     return ($msgid,$result);      return ($msgid,$result);
 }  }
   
Line 293  sub sendnotification { Line 304  sub sendnotification {
     my $critical=($crit?' critical':'');      my $critical=($crit?' critical':'');
     $text=~s/\&lt\;/\</gs;      $text=~s/\&lt\;/\</gs;
     $text=~s/\&gt\;/\>/gs;      $text=~s/\&gt\;/\>/gs;
     $text=~s/\<\/*[^\>]+\>//gs;  
     my $url='http://'.      my $url='http://'.
  &Apache::lonnet::hostname(&Apache::lonnet::homeserver($touname,$toudom)).   &Apache::lonnet::hostname(&Apache::lonnet::homeserver($touname,$toudom)).
       '/adm/email?username='.$touname.'&domain='.$toudom;        '/adm/email?username='.$touname.'&domain='.$toudom;
     my ($sendtime,$shortsubj,$fromname,$fromdomain,$status,$fromcid,      my ($sendtime,$shortsubj,$fromname,$fromdomain,$status,$fromcid,
         $symb,$error) = &Apache::lonmsg::unpackmsgid($msgid);          $symb,$error) = &Apache::lonmsg::unpackmsgid($msgid);
     my $coursetext;      my ($coursetext,$body,$bodystart,$bodyend);
     if ($fromcid ne '') {      if ($fromcid ne '') {
         $coursetext = "\n".&mt('Course').': ';          $coursetext = "\n".&mt('Course').': ';
         if ($env{'course.'.$fromcid.'.description'} ne '') {          if ($env{'course.'.$fromcid.'.description'} ne '') {
Line 312  sub sendnotification { Line 322  sub sendnotification {
         }          }
         $coursetext .= "\n\n";          $coursetext .= "\n\n";
     }      }
     my $body = $coursetext.       my @recipients = split(/,/,$to);
       $bodystart = $coursetext. 
                &mt('You received a'.$critical.' message from [_1] in LON-CAPA.',$sender).' '.&mt('The subject is                  &mt('You received a'.$critical.' message from [_1] in LON-CAPA.',$sender).' '.&mt('The subject is 
   
  [_1]   [_1]
   
 ',$subj)."\n".  ',$subj)."\n".
 '=== '.&mt('Excerpt')." ============================================================  '=== '.&mt('Excerpt')." ============================================================
 $text  ";
       $bodyend = "
 ========================================================================  ========================================================================
   
 ".&mt('Use   ".&mt('Use 
Line 327  $text Line 339  $text
  [_1]   [_1]
   
 to access the full message.',$url);  to access the full message.',$url);
     &sendemail($to,'New'.$critical.' message from '.$sender,$body);      my %userenv = &Apache::lonnet::get('environment',['notifywithhtml'],$toudom,$touname);
       my $subject = &mt("'New' $critical message from ").$sender;
       if ($userenv{'notifywithhtml'} ne '') {
           my @htmlexcerpt = split(/,/,$userenv{'notifywithhtml'});
           foreach my $addr (@recipients) {
               my $sendtext = $text;
               if (!grep/^\Q$addr\E/,@htmlexcerpt) {
                   $sendtext =~ s/\<\/*[^\>]+\>//gs;
               }
               $body = $bodystart.$sendtext.$bodyend;
               &sendemail($addr,$subject,$body);
           }
       } else {
           $text =~ s/\<\/*[^\>]+\>//gs;
           $body = $bodystart.$text.$bodyend;
           &sendemail($to,$subject,$body);
       }
 }  }
 # ============================================================= Check for email  # ============================================================= Check for email
   
Line 551  sub user_crit_received { Line 579  sub user_crit_received {
     my $msgid=shift;      my $msgid=shift;
     my %message=&Apache::lonnet::get('critical',[$msgid]);      my %message=&Apache::lonnet::get('critical',[$msgid]);
     my %contents=&unpackagemsg($message{$msgid},1);      my %contents=&unpackagemsg($message{$msgid},1);
       my $destname = $contents{'sendername'};
       my $destdom = $contents{'senderdomain'};
       if ($contents{'replytoaddr'}) {
           my ($repname,$repdom) = split(/:/,$contents{'replytoaddr'});
           if (&Apache::lonnet::homeserver($repname,$repdom) ne 'no_host') {
               $destname = $repname;
               $destdom = $repdom;    
           }
       }
     my $status='rec: '.($contents{'sendback'}?      my $status='rec: '.($contents{'sendback'}?
      &user_normal_msg($contents{'sendername'},$contents{'senderdomain'},       &user_normal_msg($destname,$destdom,&mt('Receipt').': '.$env{'user.name'}.
                      &mt('Receipt').': '.$env{'user.name'}.' '.&mt('at').' '.$env{'user.domain'}.', '.$contents{'subject'},                        ' '.&mt('at').' '.$env{'user.domain'}.', '.
                      &mt('User').' '.$env{'user.name'}.' '.&mt('at').' '.$env{'user.domain'}.                        $contents{'subject'},&mt('User').' '.$env{'user.name'}.
                      ' acknowledged receipt of message'."\n".'   "'.                        ' '.&mt('at').' '.$env{'user.domain'}.
                      $contents{'subject'}.'"'."\n".&mt('dated').' '.                        ' acknowledged receipt of message'."\n".'   "'.
                      $contents{'time'}.".\n"                        $contents{'subject'}.'"'."\n".&mt('dated').' '.
                      ):'no msg req');                        $contents{'time'}.".\n"
                         ):'no msg req');
     $status.=' trans: '.      $status.=' trans: '.
      &Apache::lonnet::put(       &Apache::lonnet::put(
      'nohist_email',{$contents{'msgid'} => $message{$msgid}});       'nohist_email',{$contents{'msgid'} => $message{$msgid}});
Line 613  sub user_normal_msg_raw { Line 651  sub user_normal_msg_raw {
    $$sentmessage = $packed_message;     $$sentmessage = $packed_message;
        }         }
 # Notifications  # Notifications
        my %userenv = &Apache::lonnet::get('environment',['notification',         my %userenv = &Apache::loncommon::getemails($user,$domain);
  'permanentemail'],  
   $domain,$user);  
        if ($userenv{'notification'}) {         if ($userenv{'notification'}) {
    &sendnotification($userenv{'notification'},$user,$domain,$subject,0,     &sendnotification($userenv{'notification'},$user,$domain,$subject,0,
      $text,$msgid);       $text,$msgid);
Line 685  sub process_sent_mail { Line 721  sub process_sent_mail {
     my $sentsubj;      my $sentsubj;
     if ($numsent > 1) {      if ($numsent > 1) {
         $sentsubj = $subj_prefix.' ('.$numsent.' sent) '.$msgsubj;          $sentsubj = $subj_prefix.' ('.$numsent.' sent) '.$msgsubj;
       } else {
           if ($subj_prefix) {
               $sentsubj = $subj_prefix.' ';
           }
           $sentsubj .= $msgsubj;
     }      }
     $sentsubj = &HTML::Entities::encode($sentsubj,'<>&"');      $sentsubj = &HTML::Entities::encode($sentsubj,'<>&"');
     my $sentmsgid =       my $sentmsgid = 

Removed from v.1.203  
changed lines
  Added in v.1.207


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