aboutsummaryrefslogtreecommitdiffstats
path: root/perllib/FixMyStreet/SendReport
diff options
context:
space:
mode:
Diffstat (limited to 'perllib/FixMyStreet/SendReport')
-rw-r--r--perllib/FixMyStreet/SendReport/Email.pm13
-rw-r--r--perllib/FixMyStreet/SendReport/Zurich.pm13
2 files changed, 23 insertions, 3 deletions
diff --git a/perllib/FixMyStreet/SendReport/Email.pm b/perllib/FixMyStreet/SendReport/Email.pm
index 6cd9afccd..09847cf5f 100644
--- a/perllib/FixMyStreet/SendReport/Email.pm
+++ b/perllib/FixMyStreet/SendReport/Email.pm
@@ -53,6 +53,15 @@ sub send_from {
return [ $row->user->email, $row->name ];
}
+sub envelope_sender {
+ my ($self, $row) = @_;
+
+ if ($row->user->email && $row->user->email_verified) {
+ return FixMyStreet::Email::unique_verp_id('report', $row->id);
+ }
+ return FixMyStreet->config('DO_NOT_REPLY_EMAIL');
+}
+
sub send {
my $self = shift;
my ( $row, $h ) = @_;
@@ -82,12 +91,10 @@ sub send {
$params->{Bcc} = $self->bcc if @{$self->bcc};
- my $sender;
+ my $sender = $self->envelope_sender($row);
if ($row->user->email && $row->user->email_verified) {
- $sender = FixMyStreet::Email::unique_verp_id('report', $row->id);
$params->{From} = $self->send_from( $row );
} else {
- $sender = FixMyStreet->config('DO_NOT_REPLY_EMAIL');
my $name = sprintf(_("On behalf of %s"), @{ $self->send_from($row) }[1]);
$params->{From} = [ $sender, $name ];
}
diff --git a/perllib/FixMyStreet/SendReport/Zurich.pm b/perllib/FixMyStreet/SendReport/Zurich.pm
index 7416c64f9..5d0592f40 100644
--- a/perllib/FixMyStreet/SendReport/Zurich.pm
+++ b/perllib/FixMyStreet/SendReport/Zurich.pm
@@ -78,4 +78,17 @@ sub send_from {
return [ FixMyStreet->config('CONTACT_EMAIL'), FixMyStreet->config('CONTACT_NAME') ];
}
+# For messages to external body, we also want the sender to be the
+# category/body, so that bounces go there.
+sub envelope_sender {
+ my ($self, $row) = @_;
+
+ if ( $row->external_body ) {
+ my $from = $self->send_from($row);
+ return $from->[0];
+ }
+
+ return $self->SUPER::envelope_sender($row);
+}
+
1;