version 1.187, 2006/12/05 02:55:53
|
version 1.190, 2006/12/13 01:45:15
|
Line 223 sub sendemail {
|
Line 223 sub sendemail {
|
my $msg = new Mail::Send; |
my $msg = new Mail::Send; |
$msg->to($to); |
$msg->to($to); |
$msg->subject('[LON-CAPA] '.$subject); |
$msg->subject('[LON-CAPA] '.$subject); |
if ($senderaddress) { $msg->add('Reply-to',$senderaddress); } |
if ($senderaddress) { $msg->add('Reply-to',$senderaddress); $msg->add('From',$senderaddress); } |
if (my $fh = $msg->open()) { |
if (my $fh = $msg->open()) { |
print $fh $body; |
print $fh $body; |
$fh->close; |
$fh->close; |
Line 379 sub store_instructor_comment {
|
Line 379 sub store_instructor_comment {
|
sub user_crit_msg_raw { |
sub user_crit_msg_raw { |
my ($user,$domain,$subject,$message,$sendback,$toperm,$sentmessage)=@_; |
my ($user,$domain,$subject,$message,$sendback,$toperm,$sentmessage)=@_; |
# Check if allowed missing |
# Check if allowed missing |
my $status=''; |
my ($status,$packed_message); |
my $msgid='undefined'; |
my $msgid='undefined'; |
unless (($message)&&($user)&&($domain)) { $status='empty'; }; |
unless (($message)&&($user)&&($domain)) { $status='empty'; }; |
my $text=$message; |
my $text=$message; |
my $homeserver=&Apache::lonnet::homeserver($user,$domain); |
my $homeserver=&Apache::lonnet::homeserver($user,$domain); |
if ($homeserver ne 'no_host') { |
if ($homeserver ne 'no_host') { |
($msgid,$message)=&packagemsg($subject,$message); |
($msgid,$packed_message)=&packagemsg($subject,$message); |
if ($sendback) { $message.='<sendback>true</sendback>'; } |
if ($sendback) { $packed_message.='<sendback>true</sendback>'; } |
$status=&Apache::lonnet::critical( |
$status=&Apache::lonnet::critical( |
'put:'.$domain.':'.$user.':critical:'. |
'put:'.$domain.':'.$user.':critical:'. |
&escape($msgid).'='. |
&escape($msgid).'='. |
&escape($message),$homeserver); |
&escape($packed_message),$homeserver); |
if (defined($sentmessage)) { |
if (defined($sentmessage)) { |
$$sentmessage = $message; |
$$sentmessage = $packed_message; |
} |
} |
|
(undef,my $packed_message_no_citation) = |
|
&packagemsg($subject,$message,undef,undef,undef,$user,$domain, |
|
$msgid); |
|
$status .= &store_sent_mail($msgid,$packed_message_no_citation); |
} else { |
} else { |
$status='no_host'; |
$status='no_host'; |
} |
} |
|
|
# Notifications |
# Notifications |
my %userenv = &Apache::loncommon::getemails($user,$domain); |
my %userenv = &Apache::loncommon::getemails($user,$domain); |
if ($userenv{'critnotification'}) { |
if ($userenv{'critnotification'}) { |
Line 518 sub user_normal_msg_raw {
|
Line 523 sub user_normal_msg_raw {
|
(&Apache::lonnet::allowed('srm',$env{'request.course.id'}) |
(&Apache::lonnet::allowed('srm',$env{'request.course.id'}) |
|| &Apache::lonnet::allowed('srm',$env{'request.course.id'}. |
|| &Apache::lonnet::allowed('srm',$env{'request.course.id'}. |
'/'.$env{'request.course.sec'})))) { |
'/'.$env{'request.course.sec'})))) { |
(undef, my $packed_message_no_citation)= |
(undef,my $packed_message_no_citation) = |
&packagemsg($subject,$message,undef ,$baseurl, |
&packagemsg($subject,$message,undef,$baseurl,$attachmenturl, |
$attachmenturl,$user,$domain,$currid, |
$user,$domain,$currid,undef,$crsmsgid); |
undef,$crsmsgid); |
|
|
|
$status .= &store_sent_mail($msgid,$packed_message_no_citation); |
$status .= &store_sent_mail($msgid,$packed_message_no_citation); |
} |
} |
} else { |
} else { |
Line 601 sub store_sent_mail {
|
Line 604 sub store_sent_mail {
|
sub foldersuffix { |
sub foldersuffix { |
my $folder=shift; |
my $folder=shift; |
unless ($folder) { return ''; } |
unless ($folder) { return ''; } |
return '_'.&escape($folder); |
my $suffix; |
|
my %folderhash = &get_user_folders($folder); |
|
if (ref($folderhash{$folder}) eq 'HASH') { |
|
$suffix = '_'.&escape($folderhash{$folder}{'id'}); |
|
} else { |
|
$suffix = '_'.&escape($folder); |
|
} |
|
return $suffix; |
|
} |
|
|
|
# ========================================================= User-defined folders |
|
|
|
sub get_user_folders { |
|
my ($folder) = @_; |
|
my %userfolders = |
|
&Apache::lonnet::dump('email_folders',undef,undef,$folder); |
|
my $lock = "\0".'lock_counter'; # locks db while counter incremented |
|
my $counter = "\0".'idcount'; # used in suffix for email db files |
|
if (defined($userfolders{$lock})) { |
|
delete($userfolders{$lock}); |
|
} |
|
if (defined($userfolders{$counter})) { |
|
delete($userfolders{$counter}); |
|
} |
|
return %userfolders; |
} |
} |
|
|
1; |
1; |