[system] / trunk / webwork2 / lib / WeBWorK / ContentGenerator / Instructor / SendMail.pm Repository:
ViewVC logotype

Diff of /trunk/webwork2/lib/WeBWorK/ContentGenerator/Instructor/SendMail.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 3376 Revision 3377
1################################################################################ 1################################################################################
2# WeBWorK Online Homework Delivery System 2# WeBWorK Online Homework Delivery System
3# Copyright © 2000-2003 The WeBWorK Project, http://openwebwork.sf.net/ 3# Copyright © 2000-2003 The WeBWorK Project, http://openwebwork.sf.net/
4# $CVSHeader: webwork-modperl/lib/WeBWorK/ContentGenerator/Instructor/SendMail.pm,v 1.39 2004/12/18 16:09:54 gage Exp $ 4# $CVSHeader$
5# 5#
6# This program is free software; you can redistribute it and/or modify it under 6# This program is free software; you can redistribute it and/or modify it under
7# the terms of either: (a) the GNU General Public License as published by the 7# the terms of either: (a) the GNU General Public License as published by the
8# Free Software Foundation; either version 2, or (at your option) any later 8# Free Software Foundation; either version 2, or (at your option) any later
9# version, or (b) the "Artistic License" which comes with this package. 9# version, or (b) the "Artistic License" which comes with this package.
370 $self->{response} = 'send_email'; 370 $self->{response} = 'send_email';
371 371
372 # check that recipients have been selected. 372 # check that recipients have been selected.
373 my @recipients = @{$self->{ra_send_to}}; 373 my @recipients = @{$self->{ra_send_to}};
374 $self->addbadmessage(CGI::p("No recipients selected ")) unless @recipients; 374 $self->addbadmessage(CGI::p("No recipients selected ")) unless @recipients;
375 # check merge file 375 # get merge file
376 my $merge_file = ( defined($self->{merge_file}) ) ? $self->{merge_file} : 'None'; 376 my $merge_file = ( defined($self->{merge_file}) ) ? $self->{merge_file} : 'None';
377 my $delimiter = ','; 377 my $delimiter = ',';
378 my $rh_merge_data = $self->read_scoring_file("$merge_file", "$delimiter"); 378 my $rh_merge_data = $self->read_scoring_file("$merge_file", "$delimiter");
379 unless (ref($rh_merge_data) ) { 379 unless (ref($rh_merge_data) ) {
380 $self->addbadmessage(CGI::p("No merge data file")); 380 $self->addbadmessage(CGI::p("No merge data file"));
381 $self->addbadmessage(CGI::p("Can't read merge file $merge_file. No message sent")); 381 $self->addbadmessage(CGI::p("Can't read merge file $merge_file. No message sent"));
382 return; 382 return;
383 } ; 383 } ;
384 if (@recipients) {
385 $self->{rh_merge_data} = $rh_merge_data;
386 $self->{smtpServer} = $ce->{mail}->{smtpServer};
387 my $post_connection_action = sub {
388 my $r = shift;
389 my $result_message = $self->mail_message_to_recipients();
390 $self->email_notification($result_message);
391 };
392 $r->post_connection($post_connection_action) ;
393 } 384
385
394# foreach my $recipient (@recipients) { 386 foreach my $recipient (@recipients) {
395# #warn "FIXME sending email to $recipient"; 387 #warn "FIXME sending email to $recipient";
396# my $ur = $self->{db}->getUser($recipient); #checked 388 my $ur = $self->{db}->getUser($recipient); #checked
397# die "record for user $recipient not found" unless $ur; 389 die "record for user $recipient not found" unless $ur;
398# unless ($ur->email_address) { 390 unless ($ur->email_address) {
399# $self->addbadmessage(CGI::p("user $recipient does not have an email address -- skipping")); 391 $self->addbadmessage(CGI::p("user $recipient does not have an email address -- skipping"));
400# next; 392 next;
401# } 393 }
402# my ($msg, $preview_header); 394 my ($msg, $preview_header);
403# eval{ ($msg,$preview_header) = $self->process_message($ur,$rh_merge_data); }; 395 eval{ ($msg,$preview_header) = $self->process_message($ur,$rh_merge_data); };
404# $self->addbadmessage(CGI::p("There were errors in processing user $ur, merge file $merge_file. $@")) if $@; 396 $self->addbadmessage(CGI::p("There were errors in processing user $ur, merge file $merge_file. $@")) if $@;
405# my $mailer = Mail::Sender->new({ 397 my $mailer = Mail::Sender->new({
406# from => $from, 398 from => $from,
407# to => $ur->email_address, 399 to => $ur->email_address,
408# smtp => $ce->{mail}->{smtpServer}, 400 smtp => $ce->{mail}->{smtpServer},
409# subject => $subject, 401 subject => $subject,
410# headers => "X-Remote-Host: ".$r->get_remote_host(), 402 headers => "X-Remote-Host: ".$r->get_remote_host(),
411# }); 403 });
412# unless (ref $mailer) { 404 unless (ref $mailer) {
413# $self->addbadmessage(CGI::p("Failed to create a mailer for user $recipient: $Mail::Sender::Error")); 405 $self->addbadmessage(CGI::p("Failed to create a mailer for user $recipient: $Mail::Sender::Error"));
414# next; 406 next;
415# } 407 }
416# unless (ref $mailer->Open()) { 408 unless (ref $mailer->Open()) {
417# $self->addbadmessage(CGI::p("Failed to open the mailer for user $recipient: $Mail::Sender::Error")); 409 $self->addbadmessage(CGI::p("Failed to open the mailer for user $recipient: $Mail::Sender::Error"));
418# next; 410 next;
419# } 411 }
420# my $MAIL = $mailer->GetHandle() or $self->addbadmessage(CGI::p("Couldn't get handle")); 412 my $MAIL = $mailer->GetHandle() or $self->addbadmessage(CGI::p("Couldn't get handle"));
421# print $MAIL $msg || $self->addbadmessage(CGI::p("Couldn't print to $MAIL")); 413 print $MAIL $msg || $self->addbadmessage(CGI::p("Couldn't print to $MAIL"));
422# close $MAIL || $self->addbadmessage(CGI::p("Couldn't close $MAIL")); 414 close $MAIL || $self->addbadmessage(CGI::p("Couldn't close $MAIL"));
423# #warn "FIXME mailed to ", $ur->email_address, "from $from subject $subject"; 415 #warn "FIXME mailed to ", $ur->email_address, "from $from subject $subject";
424# 416
425# } 417 }
426 418
427 } else { 419 } else {
428 $self->addbadmessage(CGI::p("Didn't recognize button $action")); 420 $self->addbadmessage(CGI::p("Didn't recognize button $action"));
429 } 421 }
430 422
453 unless $authz->hasPermissions($user, "send_mail"); 445 unless $authz->hasPermissions($user, "send_mail");
454 446
455 if ($response eq 'preview') { 447 if ($response eq 'preview') {
456 $self->print_preview($setID); 448 $self->print_preview($setID);
457 } elsif (($response eq 'send_email')){ 449 } elsif (($response eq 'send_email')){
458 my $message = CGI::i("Email is being sent to ". scalar(@{$self->{ra_send_to}})." recipients. You will be notified" 450 $self->addgoodmessage(CGI::p("Email sent to ". scalar(@{$self->{ra_send_to}})." students."));
459 ." when the task is completed. This may take several minutes if the class is large." 451 $self->{message} .= CGI::i("Email sent to ". scalar(@{$self->{ra_send_to}})." students.");
460 );
461 $self->addgoodmessage($message);
462 $self->{message} .= $message;
463
464 $self->print_form($setID); 452 $self->print_form($setID);
465 } else { 453 } else {
466 $self->print_form($setID); 454 $self->print_form($setID);
467 } 455 }
468 456

Legend:
Removed from v.3376  
changed lines
  Added in v.3377

aubreyja at gmail dot com
ViewVC Help
Powered by ViewVC 1.0.9