Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F117921315
D4382.1775430593.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.1775430593.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
@@ -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
Details
Attached
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)
Attached To
Mode
D4382: Fix From/Reply-To headers (T622657)
Attached
Detach File
Event Timeline