Diff for /loncom/interface/lonmsg.pm between versions 1.240 and 1.246

version 1.240, 2015/06/18 21:42:37 version 1.246, 2020/12/18 15:23:02
Line 200  Returns Line 200  Returns
   
 use strict;  use strict;
 use Apache::lonnet;  use Apache::lonnet;
   use Apache::loncommon;
 use HTML::TokeParser();  use HTML::TokeParser();
 use Apache::lonlocal;  use Apache::lonlocal;
 use MIME::Entity;  
 use HTML::Entities;  use HTML::Entities;
 use Encode;  use Encode;
 use LONCAPA qw(:DEFAULT :match);  use LONCAPA qw(:DEFAULT :match);
Line 231  sub packagemsg { Line 231  sub packagemsg {
     $attachmenturl =&HTML::Entities::encode($attachmenturl,'<>&"');      $attachmenturl =&HTML::Entities::encode($attachmenturl,'<>&"');
     my $course_context = &get_course_context();      my $course_context = &get_course_context();
     my $now=time;      my $now=time;
       my $ip = &Apache::lonnet::get_requestor_ip();
     my $msgcount = &get_uniq();      my $msgcount = &get_uniq();
     unless(defined($msgid)) {      unless(defined($msgid)) {
         $msgid = &buildmsgid($now,$subject,$env{'user.name'},$env{'user.domain'},          $msgid = &buildmsgid($now,$subject,$env{'user.name'},$env{'user.domain'},
Line 250  sub packagemsg { Line 251  sub packagemsg {
     }      }
     $result .= '<servername>'.$ENV{'SERVER_NAME'}.'</servername>'.      $result .= '<servername>'.$ENV{'SERVER_NAME'}.'</servername>'.
            '<host>'.$ENV{'HTTP_HOST'}.'</host>'.             '<host>'.$ENV{'HTTP_HOST'}.'</host>'.
    '<client>'.$ENV{'REMOTE_ADDR'}.'</client>'.     '<client>'.$ip.'</client>'.
    '<browsertype>'.$env{'browser.type'}.'</browsertype>'.     '<browsertype>'.$env{'browser.type'}.'</browsertype>'.
    '<browseros>'.$env{'browser.os'}.'</browseros>'.     '<browseros>'.$env{'browser.os'}.'</browseros>'.
    '<browserversion>'.$env{'browser.version'}.'</browserversion>'.     '<browserversion>'.$env{'browser.version'}.'</browserversion>'.
Line 397  sub buildmsgid { Line 398  sub buildmsgid {
 }  }
   
 sub unpackmsgid {  sub unpackmsgid {
     my ($msgid,$folder,$skipstatus,$status_cache)=@_;      my ($msgid,$folder,$skipstatus,$status_cache,$onlycid)=@_;
     $msgid=&unescape($msgid);      $msgid=&unescape($msgid);
     my ($sendtime,$shortsubj,$fromname,$fromdomain,$count,$fromcid,      my ($sendtime,$shortsubj,$fromname,$fromdomain,$count,$fromcid,
         $processid,$symb,$error) = split(/\:/,&unescape($msgid));          $processid,$symb,$error) = split(/\:/,&unescape($msgid));
       if (!defined($processid)) { $fromcid = ''; }
       if (($onlycid) && ($onlycid ne $fromcid)) {
           return ($sendtime,'',$fromname,$fromdomain,'',$fromcid,'',$error);
       }
     $shortsubj = &unescape($shortsubj);      $shortsubj = &unescape($shortsubj);
     $shortsubj = &HTML::Entities::decode($shortsubj);      $shortsubj = &HTML::Entities::decode($shortsubj);
     $symb = &unescape($symb);      $symb = &unescape($symb);
     if (!defined($processid)) { $fromcid = ''; }  
     my %status=();      my %status=();
     unless ($skipstatus) {      unless ($skipstatus) {
  if (ref($status_cache)) {   if (ref($status_cache)) {
Line 460  sub sendemail { Line 464  sub sendemail {
     $attachmenturl = &Apache::lonnet::filelocation("",$attachmenturl);      $attachmenturl = &Apache::lonnet::filelocation("",$attachmenturl);
     my $filesize = (stat($attachmenturl))[7];      my $filesize = (stat($attachmenturl))[7];
     if ($filesize > 1048576) {      if ($filesize > 1048576) {
           # Don't send if it exceeds 1 MB.
         print '<p><span class="LC_error">'           print '<p><span class="LC_error">' 
             .&mt('Email not sent.  Attachment exceeds permitted length.')              .&mt('Email not sent.  Attachment exceeds permitted length.')
             .'</span><br /></p>';              .'</span><br /></p>';
     } else {      } else {
         my $top = MIME::Entity->build(  Type => "multipart/mixed",          # Otherwise build and send the email
                                         From => $senderaddress,          $subject = '[LON-CAPA] '.$subject;
                                         To => $to,          &Apache::loncommon::mime_email($senderaddress,$replytoaddress,$to,
                                         Subject => '[LON-CAPA] '.$subject);                                         $subject,$body,'','',$attachmenturl,'','');
         $top->attach(Data=>$body);  
         $top->attach(Path=>$attachmenturl);  
   
         open MAIL, "| /usr/lib/sendmail -t -oi -oem" or die "open: $!";  
         $top->print(\*MAIL);  
         close MAIL;  
         $msgsent = 1;          $msgsent = 1;
     }      }
     return $msgsent;      return $msgsent;
Line 493  sub sendnotification { Line 492  sub sendnotification {
     $text=~s/\&lt\;/\</gs;      $text=~s/\&lt\;/\</gs;
     $text=~s/\&gt\;/\>/gs;      $text=~s/\&gt\;/\>/gs;
     my $homeserver = &Apache::lonnet::homeserver($touname,$toudom);      my $homeserver = &Apache::lonnet::homeserver($touname,$toudom);
       my $hostname = &Apache::lonnet::hostname($homeserver);
     my $protocol = $Apache::lonnet::protocol{$homeserver};      my $protocol = $Apache::lonnet::protocol{$homeserver};
     $protocol = 'http' if ($protocol ne 'https');      $protocol = 'http' if ($protocol ne 'https');
     my $url = $protocol.'://'.&Apache::lonnet::hostname($homeserver).      my $url = $protocol.'://'.$hostname.
               '/adm/email?username='.$touname.'&domain='.$toudom.                '/adm/email?username='.$touname.'&domain='.$toudom.
               '&display='.&escape($msgid);                '&display='.&escape($msgid);
     my ($sendtime,$shortsubj,$fromname,$fromdomain,$status,$fromcid,      my ($sendtime,$shortsubj,$fromname,$fromdomain,$status,$fromcid,

Removed from v.1.240  
changed lines
  Added in v.1.246


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