Files
ladill-meet/app/Services/Comms/EmailService.php
T
isaaccladandCursor 5b7bb88767
Deploy Ladill Meet / deploy (push) Successful in 1m28s
Use organization logo in Meet outbound emails.
Replace the product email mark with company logo or name in contact-message mail.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-12 20:08:04 +00:00

42 lines
1.3 KiB
PHP

<?php
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;
/**
* Outbound email to contacts. Uses the app's configured mailer (set MAIL_* to
* a Ladill Bird SMTP credential in production so mail leaves as the account's
* sender). Failures are swallowed + logged; the caller decides what to record.
*/
class EmailService
{
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, $logoUrl, $companyName));
return true;
} catch (\Throwable $e) {
Log::warning('CRM email send failed', ['to' => $to, 'error' => $e->getMessage()]);
return false;
}
}
}