--- loncom/interface/lonsupportreq.pm 2017/01/23 19:57:30 1.79.2.3 +++ loncom/interface/lonsupportreq.pm 2017/01/23 18:30:30 1.88 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Helpdesk request form # -# $Id: lonsupportreq.pm,v 1.79.2.3 2017/01/23 19:57:30 raeburn Exp $ +# $Id: lonsupportreq.pm,v 1.88 2017/01/23 18:30:30 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -29,8 +29,6 @@ package Apache::lonsupportreq; use strict; -use MIME::Types; -use MIME::Lite; use CGI::Cookie(); use Apache::Constants qw(:common); use Apache::loncommon(); @@ -81,7 +79,7 @@ sub handler { } return OK; } - + sub print_request_form { my ($r,$origurl,$function) = @_; my ($os,$browser,$bversion,$uname,$udom,$uhome,$urole,$usec,$email,$cid, @@ -107,7 +105,7 @@ sub print_request_form { } } } - if (($env{'user.name'} =~ /^$match_username$/) && + if (($env{'user.name'} =~ /^$match_username$/) && ($env{'user.domain'} =~ /^$match_domain$/) && (!$public)) { $knownuser = 1; } else { @@ -315,6 +313,7 @@ $jscript $loaditems // ]]> + ENDJS if ($recaptcha_version >=2) { $js.= "\n".''."\n"; @@ -351,7 +350,7 @@ ENDJS unless ($helpform{'username'} eq 'no') { my ($reqd,$namefield,$fullname); if ((defined($lastname) && $lastname ne '') && (defined($firstname) && $firstname ne '')) { - $fullname = "$firstname $lastname"; + $fullname = "$firstname $lastname"; $namefield = $fullname.'&').'" />'."\n"; } else { if (defined($firstname) && $firstname ne '') { @@ -379,7 +378,7 @@ ENDJS &HTML::Entities::encode($email,'"<>&').'" />'."\n"; unless ($shownsubmit) { $output .= $topsubmit; - } + } $output .= &Apache::lonhtmlcommon::row_closure(); $num ++; $i = $num%2; @@ -542,7 +541,7 @@ ENDJS $output .= ''."\n". ''."\n"; - } else { + } else { $output .= ''."\n"; } $output .= &Apache::lonhtmlcommon::row_closure(); @@ -570,14 +569,15 @@ ENDJS my $max = 1048576; my $showmax = 1.00; if ($helpform{'maxsize'} =~ /^\d+\.\d*$/) { - $max *= $helpform{'maxsize'}; + $max *= $helpform{'maxsize'}; $showmax = $helpform{'maxsize'}; } $showmax = ' ('.sprintf("%.2f",$showmax).' '.&mt('MB max.').')'; - $output .= &Apache::lonhtmlcommon::row_title($html_lt{'opfi'},undef,$css[$i]). - '
'. - "\n".$html_lt{'uplf'}.$showmax."\n". - &Apache::lonhtmlcommon::row_closure(); + $output .= &Apache::lonhtmlcommon::row_title($html_lt{'opfi'},undef,$css[$i]) + .' ' + .'' + .'
'."\n".$html_lt{'uplf'}.$showmax."\n" + .&Apache::lonhtmlcommon::row_closure(); $num ++; $i = $num%2; } @@ -627,7 +627,7 @@ sub print_request_receipt { if (($env{'user.name'} eq 'public') && ($env{'user.domain'} eq 'public')) { $public = 1; } - my $lonhost = $r->dir_config('lonHostID'); + my $lonhost = $r->dir_config('lonHostID'); unless (($env{'user.name'} =~ /^$match_username$/) && (!$public)) { my ($captcha_chk,$captcha_error) = &Apache::loncommon::captcha_response('login',$lonhost); @@ -833,7 +833,7 @@ sub print_request_receipt { } if ($formvars{'course'}) { $supportmsg .= "$lt{'crsi'}: $env{'form.crsi'}\n"; - } + } $supportmsg .= "$lt{'subject'}: $env{'form.subject'} $lt{'description'}: $env{'form.description'} $lt{'sourceurl'}: $env{'form.sourceurl'} @@ -962,7 +962,7 @@ END my $attachmentpath = ''; my $showsize = ''; - + if ((defined($env{'user.name'})) && (!$public)) { if ($homeserver && $env{'form.screenshot.filename'}) { unless ($helpform{'screenshot'} eq 'no') { @@ -973,7 +973,7 @@ END $max *= $helpform{'maxsize'}; $showmax = $helpform{'maxsize'}; } - $showmax = '('.sprintf("%.2f",$showmax).' MB)'; + $showmax = '('.sprintf("%.2f",$showmax).' MB)'; $showsize = $attachmentsize/1048576; $showsize = '('.sprintf("%.2f",$showsize).' MB)'; if ($attachmentsize > $max) { @@ -1010,7 +1010,7 @@ END $supportmsg .= "$var: $env{$var}\n"; } } - + my $cc_string; if ($homeserver) { if (@ok_ccs > 0) { @@ -1018,20 +1018,22 @@ END } } - my $attachment_text = ''; + my $attachment_text; unless ($homeserver && $attachmentpath) { + my $envdata = ''; foreach my $var (@cookievars) { - $attachment_text .= "$var: $cookies{$var}\n"; + $envdata .= "$var: $cookies{$var}\n"; } foreach my $var (@ENVvars) { - $attachment_text .= "$var: $ENV{$var}\n"; + $envdata .= "$var: $ENV{$var}\n"; } foreach my $var (@envvars) { - $attachment_text .= "$var: $env{$var}\n"; + $envdata .= "$var: $env{$var}\n"; } foreach my $var (@loncvars) { - $attachment_text .= "$var: $env{$var}\n"; + $envdata .= "$var: $env{$var}\n"; } + $attachment_text = $envdata; } if ($addtext) { @@ -1044,39 +1046,9 @@ END } } - my $msg = MIME::Lite->new( - From => $from, - To => $to, - Subject => $subject, - Type =>'TEXT', - Data => $supportmsg, - ); - if ($homeserver) { - if (@ok_ccs > 0) { - my $cc_string = join(', ',@ok_ccs); - $msg->add("Cc" => $cc_string); - } - } - if ($bcc ne '') { - $msg->add("Bcc" => $bcc); - } - $msg->attr("content-type" => "text/plain"); - $msg->attr("content-type.charset" => "UTF-8"); - - if ($homeserver && $attachmentpath) { - my ($type, $encoding) = MIME::Types::by_suffix($attachmentpath); - $msg->attach(Type => $type, - Path => $attachmentpath, - Filename => $fname - ); - - } elsif ($attachment_text ne '') { - $msg->attach(Type => 'TEXT', - Data => $attachment_text); - } - -### Send it: - $msg->send('sendmail'); + # Compose and send a MIME email + &Apache::loncommon::mime_email($from, $to, $subject, $supportmsg, $cc_string, $bcc, + $attachmentpath, $fname, $attachment_text); if ($attachmentpath =~ m|$Apache::lonnet::perlvar{'lonDaemons'}/tmp/helprequests/(\d+)/[^/]+|) { unlink($attachmentpath);