--- loncom/interface/lonmsg.pm 2003/03/17 17:02:38 1.50 +++ loncom/interface/lonmsg.pm 2003/06/20 14:55:01 1.55 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Routines for messaging # -# $Id: lonmsg.pm,v 1.50 2003/03/17 17:02:38 albertel Exp $ +# $Id: lonmsg.pm,v 1.55 2003/06/20 14:55:01 bowersj2 Exp $ # # Copyright Michigan State University Board of Trustees # @@ -52,17 +52,22 @@ use Apache::Constants qw(:common); use Apache::loncommon(); use Apache::lontexconvert(); use HTML::Entities(); +use Mail::Send; # ===================================================================== Package sub packagemsg { - my ($subject,$message,$citation,$baseurl)=@_; + my ($subject,$message,$citation,$baseurl,$attachmenturl)=@_; $message =&HTML::Entities::encode($message); $citation=&HTML::Entities::encode($citation); $subject =&HTML::Entities::encode($subject); #remove machine specification $baseurl =~ s|^http://[^/]+/|/|; $baseurl =&HTML::Entities::encode($baseurl); + #remove machine specification + $attachmenturl =~ s|^http://[^/]+/|/|; + $attachmenturl =&HTML::Entities::encode($attachmenturl); + my $now=time; $msgcount++; my $partsubj=$subject; @@ -93,13 +98,16 @@ sub packagemsg { if (defined($baseurl)) { $result.= ''.$baseurl.''; } + if (defined($attachmenturl)) { + $result.= ''.$attachmenturl.''; + } return $msgid,$result; } # ================================================== Unpack message into a hash sub unpackagemsg { - my $message=shift; + my ($message,$notoken)=@_; my %content=(); my $parser=HTML::TokeParser->new(\$message); my $token; @@ -110,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; } @@ -125,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=(<$domform ENDREC } + my $latexHelp = Apache::loncommon::helpLatexCheatsheet(); if ($broadcast ne 'upload') { $r->print(<<"ENDCOMP"); Additional Recipients
username\@domain,username\@domain, ... @@ -555,6 +624,7 @@ ENDREC Subject: +$latexHelp

$dispcrit @@ -762,7 +832,7 @@ $content{'sendername'},$content{'senderd } elsif ($ENV{'form.sendreply'}) { my $msgid=$ENV{'form.sendreply'}; my %message=&Apache::lonnet::get('nohist_email',[$msgid]); - my %content=&unpackagemsg($message{$msgid}); + my %content=&unpackagemsg($message{$msgid},1); &statuschange($msgid,'replied'); if ((($ENV{'form.critmsg'}) || ($ENV{'form.sendbck'})) && (&Apache::lonnet::allowed('srm',$ENV{'request.course.id'}))) { @@ -828,7 +898,7 @@ $content{'sendername'},$content{'senderd if ($ENV{'form.forwid'}) { my $msgid=$ENV{'form.forwid'}; my %message=&Apache::lonnet::get('nohist_email',[$msgid]); - %content=&unpackagemsg($message{$msgid}); + %content=&unpackagemsg($message{$msgid},1); &statuschange($msgid,'forwarded'); $ENV{'form.message'}.="\n\n-- Forwarded message --\n\n". $content{'message'};