--- loncom/interface/lonmsg.pm 2003/03/30 21:58:17 1.51 +++ loncom/interface/lonmsg.pm 2003/04/02 14:57:32 1.54 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Routines for messaging # -# $Id: lonmsg.pm,v 1.51 2003/03/30 21:58:17 www Exp $ +# $Id: lonmsg.pm,v 1.54 2003/04/02 14:57:32 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -52,6 +52,7 @@ use Apache::Constants qw(:common); use Apache::loncommon(); use Apache::lontexconvert(); use HTML::Entities(); +use Mail::Send; # ===================================================================== Package @@ -65,7 +66,7 @@ sub packagemsg { $baseurl =&HTML::Entities::encode($baseurl); #remove machine specification $attachmenturl =~ s|^http://[^/]+/|/|; - $attachmenturl =&HTML::Entities::encode($baseurl); + $attachmenturl =&HTML::Entities::encode($attachmenturl); my $now=time; $msgcount++; @@ -98,7 +99,7 @@ sub packagemsg { $result.= ''.$baseurl.''; } if (defined($attachmenturl)) { - $result.= ''.$baseurl.''; + $result.= ''.$attachmenturl.''; } return $msgid,$result; } @@ -106,7 +107,7 @@ sub packagemsg { # ================================================== Unpack message into a hash sub unpackagemsg { - my $message=shift; + my ($message,$notoken)=@_; my %content=(); my $parser=HTML::TokeParser->new(\$message); my $token; @@ -117,6 +118,16 @@ sub unpackagemsg { $content{$entry}=$value; } } + if ($content{'attachmenturl'}) { + my ($fname,$ft)=($content{'attachmenturl'}=~/\/(\w+)\.(\w+)$/); + if ($notoken) { + $content{'message'}.='

Attachment: '.$fname.'.'.$ft.''; + } else { + $content{'message'}.='

Attachment: '.$fname.'.'.$ft.''; + } + } return %content; } @@ -132,6 +143,42 @@ sub unpackmsgid { return ($sendtime,$shortsubj,$fromname,$fromdomain,$status{$msgid}); } + +sub sendemail { + my ($to,$subject,$body)=@_; + $body= + "*** This is an automatic message generated by the LON-CAPA system.\n". + "*** Please do not reply to this address.\n\n".$body; + my $msg = new Mail::Send; + $msg->to($to); + $msg->subject('[LON-CAPA] '.$subject); + my $fh = $msg->open('smtp',Server => 'localhost'); + print $fh $body; + $fh->close; +} + +# ==================================================== Send notification emails + +sub sendnotification { + my ($to,$touname,$toudom,$subj,$crit)=@_; + my $sender=$ENV{'environment.firstname'}.' '.$ENV{'environment.lastname'}; + my $critical=($crit?' critical':''); + my $url='http://'. + $Apache::lonnet::hostname{&Apache::lonnet::homeserver($touname,$toudom)}. + '/adm/email?username='.$touname.'&domain='.$toudom; + my $body=(<