version 1.38, 2002/09/07 13:57:26
|
version 1.42.2.1, 2003/03/17 16:55:06
|
Line 47 package Apache::lonmsg;
|
Line 47 package Apache::lonmsg;
|
use strict; |
use strict; |
use Apache::lonnet(); |
use Apache::lonnet(); |
use vars qw($msgcount); |
use vars qw($msgcount); |
use HTML::TokeParser; |
use HTML::TokeParser(); |
use Apache::Constants qw(:common); |
use Apache::Constants qw(:common); |
use Apache::loncommon; |
use Apache::loncommon(); |
use Apache::lontexconvert; |
use Apache::lontexconvert(); |
|
use HTML::Entities(); |
|
|
# ===================================================================== Package |
# ===================================================================== Package |
|
|
sub packagemsg { |
sub packagemsg { |
my ($subject,$message,$citation)=@_; |
my ($subject,$message,$citation)=@_; |
$message=~s/\</\<\;/g; |
# $message=~s/\</\<\;/g; |
$message=~s/\>/\>\;/g; |
# $message=~s/\>/\>\;/g; |
$citation=~s/\</\<\;/g; |
$message =&HTML::Entities::encode($message); |
$citation=~s/\>/\>\;/g; |
$citation=&HTML::Entities::encode($citation); |
$subject=~s/\</\<\;/g; |
$subject =&HTML::Entities::encode($subject); |
$subject=~s/\>/\>\;/g; |
# $subject=~s/\</\<\;/g; |
|
# $subject=~s/\>/\>\;/g; |
my $now=time; |
my $now=time; |
$msgcount++; |
$msgcount++; |
my $partsubj=$subject; |
my $partsubj=$subject; |
Line 119 sub unpackmsgid {
|
Line 121 sub unpackmsgid {
|
return ($sendtime,$shortsubj,$fromname,$fromdomain,$status{$msgid}); |
return ($sendtime,$shortsubj,$fromname,$fromdomain,$status{$msgid}); |
} |
} |
|
|
|
# ============================================================= Check for email |
|
|
|
sub newmail { |
|
if ((time-$ENV{'user.mailcheck.time'})>300) { |
|
my %what=&Apache::lonnet::get('email_status',['recnewemail']); |
|
&Apache::lonnet::appenv('user.mailcheck.time'=>time); |
|
if ($what{'recnewemail'}>0) { return 1; } |
|
} |
|
return 0; |
|
} |
|
|
# =============================== Automated message to the author of a resource |
# =============================== Automated message to the author of a resource |
|
|
sub author_res_msg { |
sub author_res_msg { |
Line 199 sub user_crit_received {
|
Line 212 sub user_crit_received {
|
&user_normal_msg($contents{'sendername'},$contents{'senderdomain'}, |
&user_normal_msg($contents{'sendername'},$contents{'senderdomain'}, |
'Receipt: '.$ENV{'user.name'}.' at '.$ENV{'user.domain'}, |
'Receipt: '.$ENV{'user.name'}.' at '.$ENV{'user.domain'}, |
'User '.$ENV{'user.name'}.' at '.$ENV{'user.domain'}. |
'User '.$ENV{'user.name'}.' at '.$ENV{'user.domain'}. |
' acknowledged receipt of message "'. |
' acknowledged receipt of message'."\n".' "'. |
$contents{'subject'}.'" dated '.$contents{'time'}.".\n\n" |
$contents{'subject'}.'"'."\n".'dated '. |
.'Message ID: '.$contents{'msgid'}):'no msg req'); |
$contents{'time'}.".\n" |
|
):'no msg req'); |
$status.=' trans: '. |
$status.=' trans: '. |
&Apache::lonnet::put( |
&Apache::lonnet::put( |
'nohist_email',{$contents{'msgid'} => $message{$msgid}}); |
'nohist_email',{$contents{'msgid'} => $message{$msgid}}); |
Line 229 sub user_normal_msg_raw {
|
Line 243 sub user_normal_msg_raw {
|
'put:'.$domain.':'.$user.':nohist_email:'. |
'put:'.$domain.':'.$user.':nohist_email:'. |
&Apache::lonnet::escape($msgid).'='. |
&Apache::lonnet::escape($msgid).'='. |
&Apache::lonnet::escape($message),$homeserver); |
&Apache::lonnet::escape($message),$homeserver); |
|
&Apache::lonnet::put |
|
('email_status',{'recnewemail'=>time},$domain,$user); |
} else { |
} else { |
$status='no_host'; |
$status='no_host'; |
} |
} |
Line 450 ENDDISHEADER
|
Line 466 ENDDISHEADER
|
$ENV{'user.home'}))) { |
$ENV{'user.home'}))) { |
my ($sendtime,$shortsubj,$fromname,$fromdomain,$status)= |
my ($sendtime,$shortsubj,$fromname,$fromdomain,$status)= |
&Apache::lonmsg::unpackmsgid($_); |
&Apache::lonmsg::unpackmsgid($_); |
unless (($status eq 'deleted') || ($sendtime=~/error/)) { |
if (($status ne 'deleted') && defined($sendtime) && $sendtime!~/error/) { |
if ($status eq 'new') { |
if ($status eq 'new') { |
$r->print('<tr bgcolor="#FFBB77">'); |
$r->print('<tr bgcolor="#FFBB77">'); |
} elsif ($status eq 'read') { |
} elsif ($status eq 'read') { |
$r->print('<tr bgcolor="#BBBB77">'); |
$r->print('<tr bgcolor="#BBBB77">'); |
} elsif ($status eq 'replied') { |
} elsif ($status eq 'replied') { |
$r->print('<tr bgcolor="#AAAA88">'); |
$r->print('<tr bgcolor="#AAAA88">'); |
} else { |
} else { |
$r->print('<tr bgcolor="#99BBBB">'); |
$r->print('<tr bgcolor="#99BBBB">'); |
} |
} |
$r->print('<td><a href="/adm/email?display='.$_. |
$r->print('<td><a href="/adm/email?display='.$_. |
'">Open</a></td><td><a href="/adm/email?markdel='.$_. |
'">Open</a></td><td><a href="/adm/email?markdel='.$_. |
'">Delete</a><input type=checkbox name="delmark_'.$_.'"></td>'. |
'">Delete</a><input type=checkbox name="delmark_'.$_.'"></td>'. |
'<td>'.localtime($sendtime).'</td><td>'. |
'<td>'.localtime($sendtime).'</td><td>'. |
$fromname.'</td><td>'.$fromdomain.'</td><td>'. |
$fromname.'</td><td>'.$fromdomain.'</td><td>'. |
&Apache::lonnet::unescape($shortsubj).'</td><td>'. |
&Apache::lonnet::unescape($shortsubj).'</td><td>'. |
$status.'</td></tr>'); |
$status.'</td></tr>'); |
} |
} |
} |
} |
$r->print('</table><p>'. |
$r->print('</table><p>'. |
'<a href="javascript:checkall()">Check All</a> '. |
'<a href="javascript:checkall()">Check All</a> '. |
Line 582 sub handler {
|
Line 598 sub handler {
|
['display','replyto','forward','markread','markdel','markunread', |
['display','replyto','forward','markread','markdel','markunread', |
'sendreply','compose','sendmail','critical','recname','recdom']); |
'sendreply','compose','sendmail','critical','recname','recdom']); |
|
|
|
# ------------------------------------------------------ They checked for email |
|
&Apache::lonnet::put('email_status',{'recnewemail'=>0}); |
# --------------------------------------------------------------- Render Output |
# --------------------------------------------------------------- Render Output |
|
|
$r->print('<html><head><title>EMail and Messaging</title></head>'. |
$r->print('<html><head><title>EMail and Messaging</title></head>'. |