Page MenuHomePhorge

D4382.1775430593.diff
No OneTemporary

Authored By
Unknown
Size
5 KB
Referenced Files
None
Subscribers
None

D4382.1775430593.diff

diff --git a/src/app/Mail/Helper.php b/src/app/Mail/Helper.php
--- a/src/app/Mail/Helper.php
+++ b/src/app/Mail/Helper.php
@@ -73,10 +73,12 @@
$mail->cc($params['cc']);
}
- $fromAddress = Tenant::getConfig($tenantId, 'mail.from.address');
- $fromName = Tenant::getConfig($tenantId, 'mail.from.name');
- $replytoAddress = Tenant::getConfig($tenantId, 'mail.reply_to.address');
- $replytoName = Tenant::getConfig($tenantId, 'mail.reply_to.name');
+ // Note: We're not using Laravel's global 'from' and 'reply_to' settings
+
+ $fromAddress = Tenant::getConfig($tenantId, 'mail.sender.address');
+ $fromName = Tenant::getConfig($tenantId, 'mail.sender.name');
+ $replytoAddress = Tenant::getConfig($tenantId, 'mail.replyto.address');
+ $replytoName = Tenant::getConfig($tenantId, 'mail.replyto.name');
if ($fromAddress) {
$mail->from($fromAddress, $fromName);
diff --git a/src/config/mail.php b/src/config/mail.php
--- a/src/config/mail.php
+++ b/src/config/mail.php
@@ -90,9 +90,12 @@
|
*/
- 'from' => [
- 'address' => env('MAIL_FROM_ADDRESS', 'hello@example.com'),
- 'name' => env('MAIL_FROM_NAME', 'Example'),
+ // Note: Laravel uses 'from' instead of 'sender'. This way we make sure
+ // Laravel does not overwrite the From header. We're setting our own in App\Mail\Helper::sendMail().
+
+ 'sender' => [
+ 'address' => env('MAIL_FROM_ADDRESS', ''),
+ 'name' => env('MAIL_FROM_NAME', ''),
],
/*
@@ -106,7 +109,12 @@
|
*/
- 'reply_to' => [
+ // Note: Laravel uses 'reply_to' instead of 'replyto'. This way we make sure
+ // Laravel does not add extra header. That's not what we want, especially with
+ // our per-tenant settings (https://github.com/laravel/framework/issues/43034).
+ // See App\Mail\Helper::sendMail().
+
+ 'replyto' => [
'address' => env('MAIL_REPLYTO_ADDRESS', ''),
'name' => env('MAIL_REPLYTO_NAME', ''),
],
diff --git a/src/tests/Feature/Jobs/Password/RetentionEmailJobTest.php b/src/tests/Feature/Jobs/Password/RetentionEmailJobTest.php
--- a/src/tests/Feature/Jobs/Password/RetentionEmailJobTest.php
+++ b/src/tests/Feature/Jobs/Password/RetentionEmailJobTest.php
@@ -68,8 +68,8 @@
// Assert sender
Mail::assertSent(PasswordExpirationReminder::class, function ($mail) {
- return $mail->hasFrom(\config('mail.from.address'), \config('mail.from.name'))
- && $mail->hasReplyTo(\config('mail.reply_to.address'), \config('mail.reply_to.name'));
+ return $mail->hasFrom(\config('mail.sender.address'), \config('mail.sender.name'))
+ && $mail->hasReplyTo(\config('mail.replyto.address'), \config('mail.replyto.name'));
});
}
}
diff --git a/src/tests/Feature/Jobs/PasswordResetEmailTest.php b/src/tests/Feature/Jobs/PasswordResetEmailTest.php
--- a/src/tests/Feature/Jobs/PasswordResetEmailTest.php
+++ b/src/tests/Feature/Jobs/PasswordResetEmailTest.php
@@ -68,8 +68,8 @@
// Assert sender
Mail::assertSent(PasswordReset::class, function ($mail) {
- return $mail->hasFrom(\config('mail.from.address'), \config('mail.from.name'))
- && $mail->hasReplyTo(\config('mail.reply_to.address'), \config('mail.reply_to.name'));
+ return $mail->hasFrom(\config('mail.sender.address'), \config('mail.sender.name'))
+ && $mail->hasReplyTo(\config('mail.replyto.address'), \config('mail.replyto.name'));
});
}
}
diff --git a/src/tests/Unit/Mail/HelperTest.php b/src/tests/Unit/Mail/HelperTest.php
--- a/src/tests/Unit/Mail/HelperTest.php
+++ b/src/tests/Unit/Mail/HelperTest.php
@@ -49,8 +49,8 @@
Mail::assertSent(\App\Mail\SignupInvitation::class, function ($mail) {
return $mail->hasTo('to@test.com')
&& $mail->hasCc('cc@test.com')
- && $mail->hasFrom(\config('mail.from.address'), \config('mail.from.name'))
- && $mail->hasReplyTo(\config('mail.reply_to.address'), \config('mail.reply_to.name'));
+ && $mail->hasFrom(\config('mail.sender.address'), \config('mail.sender.name'))
+ && $mail->hasReplyTo(\config('mail.replyto.address'), \config('mail.replyto.name'));
});
// Test with a tenant (but no per-tenant settings)
@@ -65,18 +65,18 @@
Mail::assertSent(\App\Mail\SignupInvitation::class, function ($mail) {
return $mail->hasTo('to@test.com')
&& $mail->hasCc('cc@test.com')
- && $mail->hasFrom(\config('mail.from.address'), \config('mail.from.name'))
- && $mail->hasReplyTo(\config('mail.reply_to.address'), \config('mail.reply_to.name'));
+ && $mail->hasFrom(\config('mail.sender.address'), \config('mail.sender.name'))
+ && $mail->hasReplyTo(\config('mail.replyto.address'), \config('mail.replyto.name'));
});
// Test with a tenant (but with per-tenant settings)
Mail::fake();
$tenant->setSettings([
- 'mail.from.address' => 'from@test.com',
- 'mail.from.name' => 'from name',
- 'mail.reply_to.address' => 'replyto@test.com',
- 'mail.reply_to.name' => 'replyto name',
+ 'mail.sender.address' => 'from@test.com',
+ 'mail.sender.name' => 'from name',
+ 'mail.replyto.address' => 'replyto@test.com',
+ 'mail.replyto.name' => 'replyto name',
]);
$mail = new \App\Mail\SignupInvitation($invitation);

File Metadata

Mime Type
text/plain
Expires
Sun, Apr 5, 11:09 PM (4 h, 51 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
18829082
Default Alt Text
D4382.1775430593.diff (5 KB)

Event Timeline