fix: make transaction sync email use default sender (#265)

## Summary
- explicitly set the transaction sync mailable sender to the configured
default transactional address
- add a regression test so the transaction sync email cannot fall back
to an unintended sender

## Testing
- php artisan test --compact tests/Feature/MailSenderTest.php
This commit is contained in:
Víctor Falcón 2026-04-07 13:50:42 +01:00 committed by GitHub
parent 12db64ad60
commit 7be0fe0120
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 13 additions and 0 deletions

View File

@ -6,6 +6,7 @@ use App\Models\User;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Address;
use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope;
use Illuminate\Queue\Middleware\RateLimited;
@ -43,6 +44,10 @@ class BankTransactionsSyncedEmail extends Mailable implements ShouldQueue
public function envelope(): Envelope
{
return new Envelope(
from: new Address(
config('mail.from.address', 'no-reply@whisper.money'),
config('mail.from.name', 'Whisper Money'),
),
subject: __(':count new transactions synced on Whisper Money', ['count' => $this->totalTransactions]),
);
}

View File

@ -129,6 +129,14 @@ test('default sender is used for active non-drip mailables', function (string $m
WaitlistOvertaken::class,
]);
test('transaction sync email envelope explicitly uses the default sender', function () {
$user = User::factory()->create();
$mailable = new BankTransactionsSyncedEmail($user, 3, ['Test Bank' => 3]);
expect($mailable->envelope()->from)->toEqual(new Address('no-reply@whisper.money', 'Whisper Money'));
});
test('verification notification uses the default sender', function () {
$user = User::factory()->unverified()->create();