diff options
| author | mark <mark> | 2010-08-16 17:49:03 +0000 | 
|---|---|---|
| committer | mark <mark> | 2010-08-16 17:49:03 +0000 | 
| commit | 4774ede40353662ddcb4181d824ab2167c68ff8c (patch) | |
| tree | d38caffb40f573dd82e74be5595576d374508ad0 | |
| parent | 55476aa0484f5ebada5f36e1407722d84609bd34 (diff) | |
Bcc address for impending recur notices, RT#8953
| -rw-r--r-- | FS/FS/Misc.pm | 14 | ||||
| -rw-r--r-- | FS/FS/Schema.pm | 1 | ||||
| -rw-r--r-- | FS/FS/msg_template.pm | 20 | ||||
| -rw-r--r-- | httemplate/edit/msg_template.html | 2 | 
4 files changed, 25 insertions, 12 deletions
diff --git a/FS/FS/Misc.pm b/FS/FS/Misc.pm index 3b0616a91..0e8d92bb3 100644 --- a/FS/FS/Misc.pm +++ b/FS/FS/Misc.pm @@ -113,7 +113,7 @@ sub send_email {  #         join("\n", map { "  $_: ". $options{$_} } keys %options ). "\n"    } -  my $to = ref($options{to}) ? join(', ', @{ $options{to} } ) : $options{to}; +  my @to = ref($options{to}) ? @{ $options{to} } : ( $options{to} );    my @mimeargs = ();    my @mimeparts = (); @@ -172,7 +172,7 @@ sub send_email {    my $message = MIME::Entity->build(      'From'       => $options{'from'}, -    'To'         => $to, +    'To'         => join(', ', @to),      'Sender'     => $options{'from'},      'Reply-To'   => $options{'from'},      'Date'       => time2str("%a, %d %b %Y %X %z", time), @@ -232,8 +232,11 @@ sub send_email {      $transport = Email::Sender::Transport::SMTP->new( %smtp_opt );    } +  push @to, $options{bcc} if defined($options{bcc});    local $@; # just in case -  eval { sendmail($message, { transport => $transport }) }; +  eval { sendmail($message, { transport => $transport, +                              from      => $options{from}, +                              to        => \@to }) };    if(ref($@) and $@->isa('Email::Sender::Failure')) {      return ($@->code ? $@->code.' ' : '').$@->message @@ -257,6 +260,10 @@ Sender address, required  Recipient address, required +=item bcc + +Blind copy address, optional +  =item subject  email subject, required @@ -290,6 +297,7 @@ sub generate_email {    my %return = (      'from'    => $args{'from'},      'to'      => $args{'to'}, +    'bcc'     => $args{'bcc'},      'subject' => $args{'subject'},    ); diff --git a/FS/FS/Schema.pm b/FS/FS/Schema.pm index dc8f2f3aa..076be7ed8 100644 --- a/FS/FS/Schema.pm +++ b/FS/FS/Schema.pm @@ -2946,6 +2946,7 @@ sub tables_hashref {          'body',         'blob', 'NULL',      '', '', '',          'disabled',     'char', 'NULL',       1, '', '',           'from_addr', 'varchar', 'NULL',     255, '', '', +        'bcc_addr',  'varchar', 'NULL',     255, '', '',        ],        'primary_key' => 'msgnum',        'unique'      => [ ['msgname', 'mime_type'] ], diff --git a/FS/FS/msg_template.pm b/FS/FS/msg_template.pm index d1db17dbc..121742129 100644 --- a/FS/FS/msg_template.pm +++ b/FS/FS/msg_template.pm @@ -255,9 +255,10 @@ sub prepare {    my $conf = new FS::Conf;    ( -    'from' => $self->from ||  +    'from' => $self->from_addr ||                 scalar( $conf->config('invoice_from', $cust_main->agentnum) ),      'to'   => \@to, +    'bcc'  => $self->bcc_addr || undef,      'subject'   => $subject,      'html_body' => $body,      'text_body' => HTML::FormatText->new(leftmargin => 0, rightmargin => 70 @@ -398,26 +399,27 @@ sub _upgrade_data {    my ($self, %opts) = @_;    my @fixes = ( -    [ 'alerter_msgnum',  'alerter_template',   '',               '' ], -    [ 'cancel_msgnum',   'cancelmessage',      'cancelsubject',  '' ], -    [ 'decline_msgnum',  'declinetemplate',    '',               '' ], -    [ 'impending_recur_msgnum', 'impending_recur_template', '',  '' ], -    [ 'payment_receipt_msgnum', 'payment_receipt_email', '',     '' ], -    [ 'welcome_msgnum',  'welcome_email',      'welcome_email-subject', 'welcome_email-from' ], -    [ 'warning_msgnum',  'warning_email',      'warning_email-subject', 'warning_email-from' ], +    [ 'alerter_msgnum',  'alerter_template',   '',               '', '' ], +    [ 'cancel_msgnum',   'cancelmessage',      'cancelsubject',  '', '' ], +    [ 'decline_msgnum',  'declinetemplate',    '',               '', '' ], +    [ 'impending_recur_msgnum', 'impending_recur_template', '',  '', 'impending_recur_bcc' ], +    [ 'payment_receipt_msgnum', 'payment_receipt_email', '',     '', '' ], +    [ 'welcome_msgnum',  'welcome_email',      'welcome_email-subject', 'welcome_email-from', '' ], +    [ 'warning_msgnum',  'warning_email',      'warning_email-subject', 'warning_email-from', '' ],    );    my $conf = new FS::Conf;    my @agentnums = ('', map {$_->agentnum} qsearch('agent', {}));    foreach my $agentnum (@agentnums) {      foreach (@fixes) { -      my ($newname, $oldname, $subject, $from) = @$_; +      my ($newname, $oldname, $subject, $from, $bcc) = @$_;        if ($conf->exists($oldname, $agentnum)) {          my $new = new FS::msg_template({             'msgname'   => $oldname,             'agentnum'  => $agentnum,             'from_addr' => ($from && $conf->config($from, $agentnum)) ||                             $conf->config('invoice_from', $agentnum), +           'bcc_addr'  => ($bcc && $conf->config($from, $agentnum)) || '',             'subject'   => ($subject && $conf->config($subject, $agentnum)) || '',             'mime_type' => 'text/html',             'body'      => join('<BR>',$conf->config($oldname, $agentnum)), diff --git a/httemplate/edit/msg_template.html b/httemplate/edit/msg_template.html index c38c40e4a..460f4dcc2 100644 --- a/httemplate/edit/msg_template.html +++ b/httemplate/edit/msg_template.html @@ -10,11 +10,13 @@                'fields' => [ 'msgname',                              'subject',                              'from_addr', +                            'bcc_addr',                              { field=>'body', type=>'htmlarea', width=>763 },                            ],                'labels' => { 'msgnum'    => 'Template',                              'msgname'   => 'Template name',                              'from_addr' => 'Return address', +                            'bcc_addr'  => 'Bcc address (optional)',                              'subject'   => 'Message subject',                              'body'      => 'Message template',                            },  | 
