From fcb0e3c1cb7567c7ce2c24a367c304b9a1e356f3 Mon Sep 17 00:00:00 2001 From: Jonathan Prykop Date: Thu, 29 Jan 2015 19:39:01 -0600 Subject: [PATCH] RT#30613: Can't Send E-mail [Upgrade improvements] --- FS/FS/Upgrade.pm | 47 ++++++++++++++++++++++++++++++----------------- 1 file changed, 30 insertions(+), 17 deletions(-) diff --git a/FS/FS/Upgrade.pm b/FS/FS/Upgrade.pm index 0dab2f7b5..9187cab40 100644 --- a/FS/FS/Upgrade.pm +++ b/FS/FS/Upgrade.pm @@ -46,22 +46,6 @@ sub upgrade_config { my $conf = new FS::Conf; - if ($conf->config('invoice_from') =~ /\<(.*)\>/) { - my $realemail = $1; - $realemail =~ s/^\s*//; # remove leading spaces - $realemail =~ s/\s*$//; # remove trailing spaces - my $realname = $conf->config('invoice_from'); - $realname =~ s/\<.*\>//; # remove email address - $realname =~ s/^\s*//; # remove leading spaces - $realname =~ s/\s*$//; # remove trailing spaces - # properly quote names that contain punctuation - if (($realname =~ /[^[:alnum:][:space:]]/) && ($realname !~ /^\".*\"$/)) { - $realname = '"' . $realname . '"'; - } - $conf->set('invoice_from_name', $realname); - $conf->set('invoice_from', $realemail); - } - $conf->touch('payment_receipt') if $conf->exists('payment_receipt_email') || $conf->config('payment_receipt_msgnum'); @@ -79,8 +63,15 @@ sub upgrade_config { } } + my @agents = qsearch('agent', {}); + upgrade_overlimit_groups($conf); - map { upgrade_overlimit_groups($conf,$_->agentnum) } qsearch('agent', {}); + map { upgrade_overlimit_groups($conf,$_->agentnum) } @agents; + + upgrade_invoice_from($conf); + foreach my $agent (@agents) { + upgrade_invoice_from($conf,$agent->agentnum); + } my $DIST_CONF = '/usr/local/etc/freeside/default_conf/';#DIST_CONF in Makefile $conf->set($_, scalar(read_file( "$DIST_CONF/$_" )) ) @@ -175,6 +166,28 @@ sub upgrade_overlimit_groups { } } +sub upgrade_invoice_from { + my ($conf, $agentnum) = @_; + if ( + (!$conf->config('invoice_from_name',$agentnum)) && + ($conf->config('invoice_from',$agentnum) =~ /\<(.*)\>/) + ) { + my $realemail = $1; + $realemail =~ s/^\s*//; # remove leading spaces + $realemail =~ s/\s*$//; # remove trailing spaces + my $realname = $conf->config('invoice_from',$agentnum); + $realname =~ s/\<.*\>//; # remove email address + $realname =~ s/^\s*//; # remove leading spaces + $realname =~ s/\s*$//; # remove trailing spaces + # properly quote names that contain punctuation + if (($realname =~ /[^[:alnum:][:space:]]/) && ($realname !~ /^\".*\"$/)) { + $realname = '"' . $realname . '"'; + } + $conf->set('invoice_from_name', $realname, $agentnum); + $conf->set('invoice_from', $realemail, $agentnum); + } +} + =item upgrade =cut -- 2.11.0