}
+ my $from = $options{from};
+ $from =~ s/^\s*//; $from =~ s/\s*$//;
+ if ( $from =~ /^(.*)\s*<(.*@.*)>$/ ) {
+ # a common idiom
+ $from = $2;
+ }
+
my $domain;
- if ( $options{'from'} =~ /\@([\w\.\-]+)/ ) {
+ if ( $from =~ /\@([\w\.\-]+)/ ) {
$domain = $1;
} else {
warn 'no domain found in invoice from address '. $options{'from'}.
push @to, $options{bcc} if defined($options{bcc});
local $@; # just in case
eval { sendmail($message, { transport => $transport,
- from => $options{from},
+ from => $from,
to => \@to }) };
my $error = '';
#warn 'froze string of size '. length(nfreeze(\%param)). " for job args\n"
# if $DEBUG;
+ #
+ # XXX FS::queue::insert knows how to do this.
+ # not changing it here because that requires changing it everywhere else,
+ # too, but we should eventually fix it
my $error = $job->insert( '_JOB', encode_base64(nfreeze(\%param)) );
)
%><BR>
<TABLE BGCOLOR="#cccccc" CELLSPACING=0 WIDTH="100%" id="table_no_template">
- <% include('/elements/tr-input-text.html',
- 'field' => 'from',
- 'label' => 'From:',
- 'size' => 50,
- )
- %>
-
+ <& /elements/tr-td-label.html, 'label' => 'From:' &>
+ <TD><& /elements/input-text.html,
+ 'field' => 'from_name',
+ 'value' => $conf->config('company_name'), #?
+ 'size' => 20,
+ &> <\
+ <& /elements/input-text.html,
+ 'field' => 'from_addr',
+ 'type' => 'email', # HTML5, woot
+ 'value' => $conf->config('invoice_from'),
+ 'size' => 20,
+ &>></TD>
+
<% include('/elements/tr-input-text.html',
'field' => 'subject',
'label' => 'Subject:',
die "access denied"
unless $FS::CurrentUser::CurrentUser->access_right('Bulk send customer notices');
+my $conf = FS::Conf->new;
my $table = $cgi->param('table') or die "'table' required";
my %search;
if ( $cgi->param('search') ) {
my $title = 'Send customer notices';
my $num_cust;
-my $from = $cgi->param('from') || '';
+my $from = '';
+if ( $cgi->param('from') ) {
+ $from = $cgi->param('from');
+} elsif ( $cgi->param('from_name') ) {
+ $from = ($cgi->param('from_name') . ' <' . $cgi->param('from_addr') . '>');
+} elsif ( $cgi->param('from_addr') ) {
+ $from = $cgi->param('from_addr');
+}
+
my $subject = $cgi->param('subject') || '';
my $html_body = $cgi->param('html_body') || '';