Brand Frontdesk Laravel mail for hosts and report recipients.
Deploy Ladill Frontdesk / deploy (push) Has been cancelled

Pass organization logo/name through ContactMessageMail for daily reports and campaigns, and drop the Ladill product footer.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
isaacclad
2026-07-12 20:10:26 +00:00
co-authored by Cursor
parent bc53ff206b
commit 1def8cf716
6 changed files with 78 additions and 11 deletions
@@ -39,7 +39,7 @@ class SendDailyReportCommand extends Command
foreach ($recipients as $address) {
if (is_string($address) && filter_var($address, FILTER_VALIDATE_EMAIL)) {
$email->send($address, $subject, $body);
$email->send($address, $subject, $body, $organization->name, null, $organization);
$sent++;
}
}
+4
View File
@@ -5,6 +5,7 @@ namespace App\Jobs;
use App\Models\Activity;
use App\Models\Campaign;
use App\Models\CampaignRecipient;
use App\Models\Organization;
use App\Models\User;
use App\Services\Campaigns\CampaignBillingService;
use App\Services\Campaigns\CampaignMessageService;
@@ -56,6 +57,8 @@ class SendCampaignMessageJob implements ShouldQueue
return;
}
$organization = Organization::query()->where('owner_ref', $campaign->owner_ref)->first();
$sent = $campaign->channel === Campaign::CHANNEL_SMS
? $sms->send((string) $recipient->recipient_phone, $body)
: $email->send(
@@ -64,6 +67,7 @@ class SendCampaignMessageJob implements ShouldQueue
$body,
$this->senderName($campaign),
$this->senderEmail($campaign),
$organization,
);
if (! $sent) {
+4
View File
@@ -17,6 +17,8 @@ class ContactMessageMail extends Mailable
public string $bodyText,
public ?string $fromName = null,
public ?string $replyToAddress = null,
public ?string $logoUrl = null,
public ?string $companyName = null,
) {}
public function envelope(): Envelope
@@ -34,6 +36,8 @@ class ContactMessageMail extends Mailable
with: [
'bodyText' => $this->bodyText,
'fromName' => $this->fromName,
'logoUrl' => $this->logoUrl,
'companyName' => $this->companyName,
],
);
}
+19 -4
View File
@@ -3,6 +3,8 @@
namespace App\Services\Comms;
use App\Mail\ContactMessageMail;
use App\Models\Organization;
use App\Support\OrganizationBranding;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Mail;
@@ -13,18 +15,31 @@ use Illuminate\Support\Facades\Mail;
*/
class EmailService
{
public function send(string $to, string $subject, string $body, ?string $fromName = null, ?string $replyTo = null): bool
{
public function send(
string $to,
string $subject,
string $body,
?string $fromName = null,
?string $replyTo = null,
?Organization $organization = null,
): bool {
if (! filter_var($to, FILTER_VALIDATE_EMAIL)) {
return false;
}
$logoUrl = null;
$companyName = null;
if ($organization) {
$logoUrl = OrganizationBranding::emailLogoUrl($organization);
$companyName = $organization->name;
}
try {
Mail::to($to)->send(new ContactMessageMail($subject, $body, $fromName, $replyTo));
Mail::to($to)->send(new ContactMessageMail($subject, $body, $fromName, $replyTo, $logoUrl, $companyName));
return true;
} catch (\Throwable $e) {
Log::warning('CRM email send failed', ['to' => $to, 'error' => $e->getMessage()]);
Log::warning('Frontdesk email send failed', ['to' => $to, 'error' => $e->getMessage()]);
return false;
}