Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F118041656
D4382.1775591934.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Authored By
Unknown
Size
5 KB
Referenced Files
None
Subscribers
None
D4382.1775591934.diff
View Options
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
@@ -69,10 +69,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
@@ -92,9 +92,13 @@
|
*/
- 'from' => [
- 'address' => env('MAIL_FROM_ADDRESS', 'hello@example.com'),
- 'name' => env('MAIL_FROM_NAME', 'Example'),
+ // Note: Laravel uses 'from', we added 'sender'. This way we make sure
+ // Laravel does not overwrite our From header that we set in App\Mail\Helper::sendMail().
+
+ 'from' => null, // do not use!
+ 'sender' => [
+ 'address' => env('MAIL_FROM_ADDRESS', ''),
+ 'name' => env('MAIL_FROM_NAME', ''),
],
/*
@@ -108,7 +112,13 @@
|
*/
- 'reply_to' => [
+ // Note: Laravel uses 'reply_to', we added 'replyto'. This way we make sure
+ // Laravel does not add an extra Reply-To header on top of our per-tenant
+ // Reply-To header that we set in App\Mail\Helper::sendMail().
+ // More https://github.com/laravel/framework/issues/43034.
+
+ 'reply_to' => null, // do not use!
+ '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
@@ -51,8 +51,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)
@@ -67,18 +67,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
Details
Attached
Mime Type
text/plain
Expires
Tue, Apr 7, 7:58 PM (21 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
18840905
Default Alt Text
D4382.1775591934.diff (5 KB)
Attached To
Mode
D4382: Fix From/Reply-To headers (T622657)
Attached
Detach File
Event Timeline