--- loncom/interface/lonsupportreq.pm 2017/10/15 03:43:52 1.79.2.3.2.1
+++ loncom/interface/lonsupportreq.pm 2017/01/23 19:49:07 1.89
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Helpdesk request form
#
-# $Id: lonsupportreq.pm,v 1.79.2.3.2.1 2017/10/15 03:43:52 raeburn Exp $
+# $Id: lonsupportreq.pm,v 1.89 2017/01/23 19:49:07 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();
@@ -315,6 +313,7 @@ $jscript
$loaditems
// ]]>
+
ENDJS
if ($recaptcha_version >=2) {
$js.= "\n".''."\n";
@@ -574,10 +573,11 @@ ENDJS
$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;
}
@@ -662,6 +662,9 @@ sub print_request_receipt {
my $admin = $Apache::lonnet::perlvar{'lonAdminMail'};
my $origmail = $Apache::lonnet::perlvar{'lonSupportEMail'};
my $defdom = &get_domain();
+ my ($to,$bcc,$addtext) =
+ &Apache::loncommon::build_recipient_list(undef,'helpdeskmail',
+ $defdom,$origmail);
my $from = $admin;
my %helpform;
my %domconfig =
@@ -875,33 +878,6 @@ $lt{'date'}: $reporttime
}
}
}
-
- my ($requname,$requdom,$reqemail);
- foreach my $field ('uname','udom','email') {
- $env{'form.'.$field} =~ s/^\s+//;
- $env{'form.'.$field} =~ s/\s+$//;
- }
- if ($env{'form.uname'} =~ /^$match_username$/) {
- $requdom = $env{'form.udom'};
- }
- if ($env{'form.udom'} =~ /^$match_domain$/) {
- $requdom = $env{'form.udom'};
- }
- if ($env{'form.email'} =~ m/^[^\@]+\@[^\@]+$/) {
- $reqemail = $env{'form.email'};
- }
-
- my $dom_in_effect;
- unless ($env{'user.domain'} eq 'public') {
- $dom_in_effect = $env{'user.domain'};
- }
- if ($dom_in_effect eq '') {
- $dom_in_effect = $requdom;
- }
- if ($dom_in_effect eq '') {
- $dom_in_effect = $defdom;
- }
-
$displaymsg .= ''.
$lt{'date'}.': '.$reporttime.'
'."\n";
@@ -924,11 +900,6 @@ END
&print_header($r,$url,'process');
}
my $bad_email = 0;
- my ($to,$bcc,$addtext) =
- &Apache::loncommon::build_recipient_list(undef,'helpdeskmail',
- $dom_in_effect,$origmail,
- $requname,$requdom,
- $reqemail);
if ($to =~ /,/) {
my @ok_email;
foreach my $email (split(/,/,$to)) {
@@ -966,8 +937,12 @@ END
}
$r->print(&Apache::loncommon::confirmwrapper($message));
- if ($reqemail ne '') {
- $from = $reqemail;
+ if (defined($env{'form.email'})) {
+ $env{'form.email'} =~ s/^\s+//;
+ $env{'form.email'} =~ s/\s+$//;
+ if ($env{'form.email'} =~ m/^[^\@]+\@[^\@]+$/) {
+ $from = $env{'form.email'};
+ }
}
if (defined($env{'form.cc'})) {
@@ -1043,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) {
@@ -1069,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);