projects
/
freeside.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Bug fix: checking ref() instead of defined()
[freeside.git]
/
FS
/
FS
/
Misc.pm
diff --git
a/FS/FS/Misc.pm
b/FS/FS/Misc.pm
index
dbebf33
..
f597058
100644
(file)
--- a/
FS/FS/Misc.pm
+++ b/
FS/FS/Misc.pm
@@
-154,6
+154,7
@@
sub send_email {
unshift @mimeparts, {
'Type' => ( $options{'content-type'} || 'text/plain' ),
unshift @mimeparts, {
'Type' => ( $options{'content-type'} || 'text/plain' ),
+ 'Charset' => 'UTF-8',
'Data' => $options{'body'},
'Encoding' => ( $options{'content-type'} ? '-SUGGEST' : '7bit' ),
'Disposition' => 'inline',
'Data' => $options{'body'},
'Encoding' => ( $options{'content-type'} ? '-SUGGEST' : '7bit' ),
'Disposition' => 'inline',
@@
-165,14
+166,22
@@
sub send_email {
'Type' => ( $options{'content-type'} || 'text/plain' ),
'Data' => $options{'body'},
'Encoding' => ( $options{'content-type'} ? '-SUGGEST' : '7bit' ),
'Type' => ( $options{'content-type'} || 'text/plain' ),
'Data' => $options{'body'},
'Encoding' => ( $options{'content-type'} ? '-SUGGEST' : '7bit' ),
+ 'Charset' => 'UTF-8',
);
}
}
);
}
}
+ my $from = $options{from};
+ $from =~ s/^\s*//; $from =~ s/\s*$//;
+ if ( $from =~ /^(.*)\s*<(.*@.*)>$/ ) {
+ # a common idiom
+ $from = $2;
+ }
+
my $domain;
my $domain;
- if ( $
options{'from'}
=~ /\@([\w\.\-]+)/ ) {
+ if ( $
from
=~ /\@([\w\.\-]+)/ ) {
$domain = $1;
} else {
warn 'no domain found in invoice from address '. $options{'from'}.
$domain = $1;
} else {
warn 'no domain found in invoice from address '. $options{'from'}.
@@
-247,7
+256,7
@@
sub send_email {
push @to, $options{bcc} if defined($options{bcc});
local $@; # just in case
eval { sendmail($message, { transport => $transport,
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 = '';
to => \@to }) };
my $error = '';
@@
-260,7
+269,7
@@
sub send_email {
}
# Logging
}
# Logging
- if ( $conf->exists('log_sent_mail')
and $options{'custnum'}
) {
+ if ( $conf->exists('log_sent_mail') ) {
my $cust_msg = FS::cust_msg->new({
'env_from' => $options{'from'},
'env_to' => join(', ', @to),
my $cust_msg = FS::cust_msg->new({
'env_from' => $options{'from'},
'env_to' => join(', ', @to),
@@
-271,6
+280,7
@@
sub send_email {
'custnum' => $options{'custnum'},
'msgnum' => $options{'msgnum'},
'status' => ($error ? 'failed' : 'sent'),
'custnum' => $options{'custnum'},
'msgnum' => $options{'msgnum'},
'status' => ($error ? 'failed' : 'sent'),
+ 'msgtype' => $options{'msgtype'},
});
$cust_msg->insert; # ignore errors
}
});
$cust_msg->insert; # ignore errors
}
@@
-330,7
+340,7
@@
sub generate_email {
my $me = '[FS::Misc::generate_email]';
my $me = '[FS::Misc::generate_email]';
- my @fields = qw(from to bcc subject custnum msgnum);
+ my @fields = qw(from to bcc subject custnum msgnum
msgtype
);
my %return;
@return{@fields} = @args{@fields};
my %return;
@return{@fields} = @args{@fields};
@@
-355,6
+365,7
@@
sub generate_email {
$alternative->attach(
'Type' => 'text/plain',
'Encoding' => 'quoted-printable',
$alternative->attach(
'Type' => 'text/plain',
'Encoding' => 'quoted-printable',
+ 'Charset' => 'UTF-8',
#'Encoding' => '7bit',
'Data' => $data,
'Disposition' => 'inline',
#'Encoding' => '7bit',
'Data' => $data,
'Disposition' => 'inline',
@@
-537,7
+548,7
@@
sub states_hash {
#it could throw a fatal "Invalid country code" error (for example "AX")
my $subcountry = eval { new Locale::SubCountry($country) }
#it could throw a fatal "Invalid country code" error (for example "AX")
my $subcountry = eval { new Locale::SubCountry($country) }
- or return ( '', '(n/a)' );
+ or return (
); # (
'', '(n/a)' );
#"i see your schwartz is as big as mine!"
map { ( $_->[0] => $_->[1] ) }
#"i see your schwartz is as big as mine!"
map { ( $_->[0] => $_->[1] ) }
@@
-707,7
+718,9
@@
sub generate_ps {
_pslatex($file);
_pslatex($file);
- system('dvips', '-q', '-t', 'letter', "$file.dvi", '-o', "$file.ps" ) == 0
+ my $papersize = $conf->config('papersize') || 'letter';
+
+ system('dvips', '-q', '-t', $papersize, "$file.dvi", '-o', "$file.ps" ) == 0
or die "dvips failed";
open(POSTSCRIPT, "<$file.ps")
or die "dvips failed";
open(POSTSCRIPT, "<$file.ps")
@@
-762,8
+775,10
@@
sub generate_pdf {
my $sfile = shell_quote $file;
#system('dvipdf', "$file.dvi", "$file.pdf" );
my $sfile = shell_quote $file;
#system('dvipdf', "$file.dvi", "$file.pdf" );
+ my $papersize = $conf->config('papersize') || 'letter';
+
system(
system(
- "dvips -q -
t letter -f $sfile.dvi
".
+ "dvips -q -
f $sfile.dvi -t $papersize
".
"| gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=$sfile.pdf ".
" -c save pop -"
) == 0
"| gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=$sfile.pdf ".
" -c save pop -"
) == 0