version 1.219, 2008/12/23 19:22:13
|
version 1.225, 2010/03/02 15:10:47
|
Line 194 Returns
|
Line 194 Returns
|
%to - a hash, which keys are addresses of users to send messages to |
%to - a hash, which keys are addresses of users to send messages to |
the keys will look like name:domain |
the keys will look like name:domain |
|
|
=item user_lang() |
|
|
|
=back |
=back |
|
|
=cut |
=cut |
Line 422 sub unpackmsgid {
|
Line 420 sub unpackmsgid {
|
|
|
sub sendemail { |
sub sendemail { |
my ($to,$subject,$body,$to_uname,$to_udom,$user_lh)=@_; |
my ($to,$subject,$body,$to_uname,$to_udom,$user_lh)=@_; |
my %senderemails=&Apache::loncommon::getemails(); |
|
my $senderaddress=''; |
my $senderaddress=''; |
foreach my $type ('notification','permanentemail','critnotification') { |
my $replytoaddress=''; |
if ($senderemails{$type}) { |
if ($env{'form.can_reply'} eq 'N') { |
$senderaddress=$senderemails{$type}; |
my $lonhost = $Apache::lonnet::perlvar{'lonHostID'}; |
} |
my $hostname = &Apache::lonnet::hostname($lonhost); |
|
$replytoaddress = 'do-not-reply@'.$hostname; |
|
} else { |
|
my %senderemails; |
|
my $have_sender; |
|
if ($env{'form.reply_to_addr'}) { |
|
my ($replytoname,$replytodom) = split(/:/,$env{'form.reply_to_addr'}); |
|
if (!($replytoname eq $env{'user.name'} && $replytodom eq $env{'user.domain'})) { |
|
if (&Apache::lonnet::homeserver($replytoname,$replytodom) ne 'no_host') { |
|
%senderemails = |
|
&Apache::loncommon::getemails($replytoname,$replytodom); |
|
$have_sender = 1; |
|
} |
|
} |
|
} |
|
if (!$have_sender) { |
|
%senderemails=&Apache::loncommon::getemails(); |
|
} |
|
foreach my $type ('permanentemail','critnotification','notification') { |
|
if ($senderemails{$type}) { |
|
($senderaddress) = split(/,/,$senderemails{$type}); |
|
last if ($senderaddress); |
|
} |
|
} |
} |
} |
$body= |
$body= |
"*** ".&mt_user($user_lh,'This is an automatic e-mail generated by the LON-CAPA system.')."\n". |
"*** ".&mt_user($user_lh,'This is an automatic e-mail generated by the LON-CAPA system.')."\n". |
"*** ".($senderaddress?&mt_user($user_lh,'You can reply to this e-mail'):&mt_user($user_lh,'Please do not reply to this address.')."\n*** ". |
"*** ".($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; |
&mt_user($user_lh,'A reply will not be received by the recipient!'))."\n\n".$body; |
|
|
|
$body =~ s/ / /g; |
|
|
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); $msg->add('From',$senderaddress); } |
if ($replytoaddress) { |
|
$msg->add('Reply-to',$replytoaddress); |
|
} |
|
if ($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 463 sub sendnotification {
|
Line 491 sub sendnotification {
|
my ($sendtime,$shortsubj,$fromname,$fromdomain,$status,$fromcid, |
my ($sendtime,$shortsubj,$fromname,$fromdomain,$status,$fromcid, |
$symb,$error) = &Apache::lonmsg::unpackmsgid($msgid); |
$symb,$error) = &Apache::lonmsg::unpackmsgid($msgid); |
my ($coursetext,$body,$bodybegin,$bodysubj,$bodyend); |
my ($coursetext,$body,$bodybegin,$bodysubj,$bodyend); |
my $user_lh = &user_lang($touname,$toudom,$fromcid); |
my $user_lh = &Apache::loncommon::user_lang($touname,$toudom,$fromcid); |
if ($fromcid ne '') { |
if ($fromcid ne '') { |
$coursetext = "\n".&mt_user($user_lh,'Course').': '; |
$coursetext = "\n".&mt_user($user_lh,'Course').': '; |
if ($env{'course.'.$fromcid.'.description'} ne '') { |
if ($env{'course.'.$fromcid.'.description'} ne '') { |
Line 535 to access the full message.',$url);
|
Line 563 to access the full message.',$url);
|
} |
} |
} |
} |
|
|
|
sub mynewmail{ |
|
&newmail(); |
|
return $env{'user.mailcheck.lastnewmassagetime'} > $env{'user.mailcheck.lastvisit'}; |
|
} |
|
|
|
|
sub newmail { |
sub newmail { |
if ((time-$env{'user.mailcheck.time'})>300) { |
if ((time-$env{'user.mailcheck.time'})>300) { |
my %what=&Apache::lonnet::get('email_status',['recnewemail']); |
my %what=&Apache::lonnet::get('email_status',['recnewemail']); |
&Apache::lonnet::appenv({'user.mailcheck.time'=>time}); |
&Apache::lonnet::appenv({'user.mailcheck.time'=>time}); |
|
&Apache::lonnet::appenv({'user.mailcheck.lastnewmassagetime'=> $what{'recnewemail'}}); |
if ($what{'recnewemail'}>0) { return 1; } |
if ($what{'recnewemail'}>0) { return 1; } |
} |
} |
return 0; |
return 0; |
Line 998 sub decide_receiver {
|
Line 1032 sub decide_receiver {
|
return ($typestyle,%to); |
return ($typestyle,%to); |
} |
} |
|
|
sub user_lang { |
|
my ($touname,$toudom,$fromcid) = @_; |
|
my @userlangs; |
|
if (($fromcid ne '') && ($env{'course.'.$fromcid.'.languages'} ne '')) { |
|
@userlangs=(@userlangs,split(/\s*(\,|\;|\:)\s*/, |
|
$env{'course.'.$fromcid.'.languages'})); |
|
} else { |
|
my %langhash = &Apache::loncommon::getlangs($toudom,$touname); |
|
if ($langhash{'languages'} ne '') { |
|
@userlangs = split(/\s*(\,|\;|\:)\s*/,$langhash{'languages'}); |
|
} else { |
|
my %domdefs = &Apache::lonnet::get_domain_defaults($toudom); |
|
if ($domdefs{'lang_def'} ne '') { |
|
@userlangs = ($domdefs{'lang_def'}); |
|
} |
|
} |
|
} |
|
my @languages=&Apache::lonlocal::get_genlanguages(@userlangs); |
|
my $user_lh = Apache::localize->get_handle(@languages); |
|
return $user_lh; |
|
} |
|
|
|
1; |
1; |
__END__ |
__END__ |
|
|