--- loncom/interface/lonmsg.pm 2015/06/23 02:42:34 1.242 +++ loncom/interface/lonmsg.pm 2020/12/18 15:23:02 1.246 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Routines for messaging # -# $Id: lonmsg.pm,v 1.242 2015/06/23 02:42:34 musolffc Exp $ +# $Id: lonmsg.pm,v 1.246 2020/12/18 15:23:02 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -231,6 +231,7 @@ sub packagemsg { $attachmenturl =&HTML::Entities::encode($attachmenturl,'<>&"'); my $course_context = &get_course_context(); my $now=time; + my $ip = &Apache::lonnet::get_requestor_ip(); my $msgcount = &get_uniq(); unless(defined($msgid)) { $msgid = &buildmsgid($now,$subject,$env{'user.name'},$env{'user.domain'}, @@ -250,7 +251,7 @@ sub packagemsg { } $result .= ''.$ENV{'SERVER_NAME'}.''. ''.$ENV{'HTTP_HOST'}.''. - ''.$ENV{'REMOTE_ADDR'}.''. + ''.$ip.''. ''.$env{'browser.type'}.''. ''.$env{'browser.os'}.''. ''.$env{'browser.version'}.''. @@ -397,14 +398,17 @@ sub buildmsgid { } sub unpackmsgid { - my ($msgid,$folder,$skipstatus,$status_cache)=@_; + my ($msgid,$folder,$skipstatus,$status_cache,$onlycid)=@_; $msgid=&unescape($msgid); my ($sendtime,$shortsubj,$fromname,$fromdomain,$count,$fromcid, $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 = &HTML::Entities::decode($shortsubj); $symb = &unescape($symb); - if (!defined($processid)) { $fromcid = ''; } my %status=(); unless ($skipstatus) { if (ref($status_cache)) { @@ -467,8 +471,8 @@ sub sendemail { } else { # Otherwise build and send the email $subject = '[LON-CAPA] '.$subject; - &Apache::loncommon::mime_email($senderaddress, $to, $subject, $body, ,'', - '', $attachmenturl, '', ''); + &Apache::loncommon::mime_email($senderaddress,$replytoaddress,$to, + $subject,$body,'','',$attachmenturl,'',''); $msgsent = 1; } return $msgsent; @@ -488,9 +492,10 @@ sub sendnotification { $text=~s/\<\;/\/gs; my $homeserver = &Apache::lonnet::homeserver($touname,$toudom); + my $hostname = &Apache::lonnet::hostname($homeserver); my $protocol = $Apache::lonnet::protocol{$homeserver}; $protocol = 'http' if ($protocol ne 'https'); - my $url = $protocol.'://'.&Apache::lonnet::hostname($homeserver). + my $url = $protocol.'://'.$hostname. '/adm/email?username='.$touname.'&domain='.$toudom. '&display='.&escape($msgid); my ($sendtime,$shortsubj,$fromname,$fromdomain,$status,$fromcid,