aboutsummaryrefslogtreecommitdiffstats
path: root/perllib/FixMyStreet/App.pm
diff options
context:
space:
mode:
authorMatthew Somerville <matthew-github@dracos.co.uk>2016-03-31 14:17:54 +0100
committerMatthew Somerville <matthew-github@dracos.co.uk>2016-03-31 14:17:54 +0100
commitdac0d4c71018c01d858d0111d0f772b49a6e124d (patch)
tree191bb55f2ebb738d8fccb8b3e73db5688aff291a /perllib/FixMyStreet/App.pm
parent6702f44f92e9c74fe6d2dd1c69c5418a15af178c (diff)
parente4707406bd816fb9b1bb2077b7452cc77dec3d94 (diff)
Merge remote-tracking branch 'mysociety/refactor-email'
Diffstat (limited to 'perllib/FixMyStreet/App.pm')
-rw-r--r--perllib/FixMyStreet/App.pm33
1 files changed, 9 insertions, 24 deletions
diff --git a/perllib/FixMyStreet/App.pm b/perllib/FixMyStreet/App.pm
index b8ce2e051..af9dc1f9d 100644
--- a/perllib/FixMyStreet/App.pm
+++ b/perllib/FixMyStreet/App.pm
@@ -6,7 +6,6 @@ use Catalyst::Runtime 5.80;
use FixMyStreet;
use FixMyStreet::Cobrand;
use Memcached;
-use mySociety::Email;
use mySociety::Random qw(random_bytes);
use FixMyStreet::Map;
use FixMyStreet::Email;
@@ -319,37 +318,23 @@ sub send_email {
return if FixMyStreet::Email::is_abuser($c->model('DB')->schema, $vars->{to});
- # render the template
- my $content = $c->view('Email')->render( $c, $template, $vars );
-
- # create an email - will parse headers out of content
- my $email = Email::Simple->new($content);
- $email->header_set( 'Subject', $vars->{subject} ) if $vars->{subject};
- $email->header_set( 'Reply-To', $vars->{'Reply-To'} ) if $vars->{'Reply-To'};
-
- $email->header_set( 'Message-ID', sprintf('<fms-%s-%s@%s>',
- time(), unpack('h*', random_bytes(5, 1)), $c->config->{EMAIL_DOMAIN}
- ) );
-
- # pass the email into mySociety::Email to construct the on the wire 7bit
- # format - this should probably happen in the transport instead but hohum.
- my $email_text = mySociety::Locale::in_gb_locale { mySociety::Email::construct_email(
+ my $email = mySociety::Locale::in_gb_locale { FixMyStreet::Email::construct_email(
{
- _template_ => $email->body, # will get line wrapped
+ _template_ => $c->view('Email')->render( $c, $template, $vars ),
_parameters_ => {},
- _line_indent => '',
+ _attachments_ => $extra_stash_values->{attachments},
From => $vars->{from},
To => $vars->{to},
- $email->header_pairs
+ 'Message-ID' => sprintf('<fms-%s-%s@%s>',
+ time(), unpack('h*', random_bytes(5, 1)), $c->config->{EMAIL_DOMAIN}
+ ),
+ $vars->{subject} ? (Subject => $vars->{subject}) : (),
+ $vars->{'Reply-To'} ? ('Reply-To' => $vars->{'Reply-To'}) : (),
}
) };
- if (my $attachments = $extra_stash_values->{attachments}) {
- $email_text = FixMyStreet::Email::munge_attachments($email_text, $attachments);
- }
-
# send the email
- $c->model('EmailSend')->send($email_text);
+ $c->model('EmailSend')->send($email);
return $email;
}