maintenance:
[freeside.git] / FS / FS / cust_pkg.pm
index bd3d1f5..9ab2695 100644 (file)
@@ -5,6 +5,7 @@ use vars qw(@ISA $disable_agentcheck);
 use vars qw( $quiet );
 use FS::UID qw( getotaker dbh );
 use FS::Record qw( qsearch qsearchs );
+use FS::Misc qw( send_email );
 use FS::cust_svc;
 use FS::part_pkg;
 use FS::cust_main;
@@ -20,12 +21,8 @@ use FS::svc_domain;
 use FS::svc_www;
 use FS::svc_forward;
 
-# need all this for sending cancel emails in sub cancel
-
+# for sending cancel emails in sub cancel
 use FS::Conf;
-use Date::Format;
-use Mail::Internet 1.44;
-use Mail::Header;
 
 @ISA = qw( FS::Record );
 
@@ -304,38 +301,16 @@ sub cancel {
   $dbh->commit or die $dbh->errstr if $oldAutoCommit;
 
   my $conf = new FS::Conf;
-
-  if ( !$quiet && $conf->exists('emailcancel')
-       && grep { $_ ne 'POST' } $self->cust_main->invoicing_list) {
-  
-      my @invoicing_list = $self->cust_main->invoicing_list;
-  
-      my $invoice_from = $conf->config('invoice_from');
-      my @print_text = map "$_\n", $conf->config('cancelmessage');
-      my $subject = $conf->config('cancelsubject');
-      my $smtpmachine = $conf->config('smtpmachine');
-      
-      if ( grep { $_ ne 'POST' } @invoicing_list ) { #email invoice
-         #false laziness w/FS::cust_pay::delete & fs_signup_server && ::realtime_card
-         #$ENV{SMTPHOSTS} = $smtpmachine;
-         $ENV{MAILADDRESS} = $invoice_from;
-         my $header = new Mail::Header ( [
-              "From: $invoice_from",
-             "To: ". join(', ', grep { $_ ne 'POST' } @invoicing_list ),
-              "Sender: $invoice_from",
-              "Reply-To: $invoice_from",
-              "Date: ". time2str("%a, %d %b %Y %X %z", time),
-              "Subject: $subject",           
-                                     ] );
-         my $message = new Mail::Internet (
-              'Header' => $header,
-              'Body' => [ @print_text ],      
-                                      );
-         $!=0;
-         $message->smtpsend( Host => $smtpmachine )
-             or $message->smtpsend( Host => $smtpmachine, Debug => 1 );
-         #should this return an error?
-         }
+  my @invoicing_list = grep { $_ ne 'POST' } $self->cust_main->invoicing_list;
+  if ( !$quiet && $conf->exists('emailcancel') && @invoicing_list ) {
+    my $conf = new FS::Conf;
+    my $error = send_email(
+      'from'    => $conf->config('invoice_from'),
+      'to'      => \@invoicing_list,
+      'subject' => $conf->config('cancelsubject'),
+      'body'    => [ map "$_\n", $conf->config('cancelmessage') ],
+    );
+    #should this do something on errors?
   }
 
   ''; #no errors