--- loncom/interface/lonmsg.pm 2015/06/18 21:42:37 1.240 +++ loncom/interface/lonmsg.pm 2015/06/18 23:02:48 1.241 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Routines for messaging # -# $Id: lonmsg.pm,v 1.240 2015/06/18 21:42:37 musolffc Exp $ +# $Id: lonmsg.pm,v 1.241 2015/06/18 23:02:48 musolffc Exp $ # # Copyright Michigan State University Board of Trustees # @@ -202,7 +202,7 @@ use strict; use Apache::lonnet; use HTML::TokeParser(); use Apache::lonlocal; -use MIME::Entity; +use Mail::Send; use HTML::Entities; use Encode; use LONCAPA qw(:DEFAULT :match); @@ -421,7 +421,7 @@ sub unpackmsgid { sub sendemail { - my ($to,$subject,$body,$to_uname,$to_udom,$user_lh,$attachmenturl)=@_; + my ($to,$subject,$body,$to_uname,$to_udom,$user_lh)=@_; my $senderaddress=''; my $replytoaddress=''; my $msgsent; @@ -457,23 +457,19 @@ sub sendemail { "*** ".($senderaddress?&mt_user($user_lh,'You can reply to this e-mail'):&mt_user($user_lh,'Please do not reply to this address.')."\n*** ". &mt_user($user_lh,'A reply will not be received by the recipient!'))."\n\n".$body; - $attachmenturl = &Apache::lonnet::filelocation("",$attachmenturl); - my $filesize = (stat($attachmenturl))[7]; - if ($filesize > 1048576) { - print '

' - .&mt('Email not sent. Attachment exceeds permitted length.') - .'

'; - } else { - my $top = MIME::Entity->build( Type => "multipart/mixed", - From => $senderaddress, - To => $to, - Subject => '[LON-CAPA] '.$subject); - $top->attach(Data=>$body); - $top->attach(Path=>$attachmenturl); - - open MAIL, "| /usr/lib/sendmail -t -oi -oem" or die "open: $!"; - $top->print(\*MAIL); - close MAIL; + my $msg = new Mail::Send; + $msg->to($to); + $msg->subject('[LON-CAPA] '.$subject); + if ($replytoaddress) { + $msg->add('Reply-to',$replytoaddress); + } + if ($senderaddress) { + $msg->add('From',$senderaddress); + } + $msg->add('Content-type','text/plain; charset=UTF-8'); + if (my $fh = $msg->open()) { + print $fh $body; + $fh->close; $msgsent = 1; } return $msgsent; @@ -482,7 +478,7 @@ sub sendemail { # ==================================================== Send notification emails sub sendnotification { - my ($to,$touname,$toudom,$subj,$crit,$text,$msgid,$attachmenturl)=@_; + my ($to,$touname,$toudom,$subj,$crit,$text,$msgid)=@_; my $sender=$env{'environment.firstname'}.' '.$env{'environment.lastname'}; unless ($sender=~/\w/) { $sender=$env{'user.name'}.':'.$env{'user.domain'}; @@ -566,7 +562,7 @@ to access the full message.',$url); } $body = $bodybegin.$bodysubj.$sendtext.$bodyend; } - if (&sendemail($addr,$subject,$body,$touname,$toudom,$user_lh,$attachmenturl)) { + if (&sendemail($addr,$subject,$body,$touname,$toudom,$user_lh)) { $numsent ++; } } @@ -577,7 +573,7 @@ to access the full message.',$url); my $htmlfree = &make_htmlfree($text); $body = $bodybegin.$bodysubj.$htmlfree.$bodyend; } - if (&sendemail($to,$subject,$body,$touname,$toudom,$user_lh,$attachmenturl)) { + if (&sendemail($to,$subject,$body,$touname,$toudom,$user_lh)) { $numsent ++; } } @@ -746,7 +742,7 @@ sub user_crit_msg_raw { my $numperm = 0; my $permlogmsgstatus; if ($critnotify) { - $numcrit = &sendnotification($critnotify,$user,$domain,$subject,1,$text,$msgid,$attachmenturl); + $numcrit = &sendnotification($critnotify,$user,$domain,$subject,1,$text,$msgid); } if ($toperm && $permemail) { if ($critnotify && $numcrit) { @@ -755,7 +751,7 @@ sub user_crit_msg_raw { } } unless ($numperm) { - $numperm = &sendnotification($permemail,$user,$domain,$subject,1,$text,$msgid,$attachmenturl); + $numperm = &sendnotification($permemail,$user,$domain,$subject,1,$text,$msgid); } } if ($toperm) { @@ -890,7 +886,7 @@ sub user_normal_msg_raw { my $numperm = 0; my $permlogmsgstatus; if ($notify) { - $numnotify = &sendnotification($notify,$user,$domain,$subject,0,$text,$msgid,$attachmenturl); + $numnotify = &sendnotification($notify,$user,$domain,$subject,0,$text,$msgid); } if ($toperm && $permemail) { if ($notify && $numnotify) { @@ -900,7 +896,7 @@ sub user_normal_msg_raw { } unless ($numperm) { $numperm = &sendnotification($permemail,$user,$domain,$subject,0, - $text,$msgid,$attachmenturl); + $text,$msgid); } } if ($toperm) {