--- 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,