Send Events mail from platform SMTP like Invoice, not owner Bird domain.
Deploy Ladill Events / deploy (push) Successful in 31s
Deploy Ladill Events / deploy (push) Successful in 31s
Use EventMailer with MAIL_FROM and organiser Reply-To instead of the Bird API, which rewrote the From address onto the account's verified domain (e.g. climp.me). Redesign the speaker invitation to use the shared Events email layout. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -1,12 +1,61 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<body style="font-family: sans-serif; color: #1e293b; line-height: 1.5;">
|
||||
@if($speakerName)
|
||||
<p>Hi {{ $speakerName }},</p>
|
||||
@endif
|
||||
<p>You have been invited to speak at <strong>{{ $eventName }}</strong>.</p>
|
||||
<p>Your speaker page has the programme, your session times, and links to join the virtual stage when it is time:</p>
|
||||
<p><a href="{{ $portalUrl }}">Open your speaker page</a></p>
|
||||
<p style="color: #64748b; font-size: 13px;">No attendee registration is required — use the join links on that page to enter the speaker waiting area.</p>
|
||||
</body>
|
||||
</html>
|
||||
@extends('mail.notifications.layout')
|
||||
|
||||
@section('email-header')
|
||||
@include('mail.partials.brand-header', ['brand' => 'events'])
|
||||
@endsection
|
||||
|
||||
@section('email-footer')
|
||||
@include('mail.partials.brand-footer', ['brand' => 'events'])
|
||||
@endsection
|
||||
|
||||
@section('content')
|
||||
<div class="highlight-box">
|
||||
<p class="highlight-box-text">Speaker invitation</p>
|
||||
<p class="highlight-box-subtext">{{ $eventName }}</p>
|
||||
</div>
|
||||
|
||||
<h1 class="email-title">
|
||||
You're invited to speak{{ $speakerName ? ', '.explode(' ', $speakerName)[0] : '' }}
|
||||
</h1>
|
||||
|
||||
<p class="email-text">
|
||||
The organiser of <strong>{{ $eventName }}</strong> has added you to the speaker roster.
|
||||
Your speaker page includes the programme, your session times, and links to join the virtual stage.
|
||||
</p>
|
||||
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%" style="margin:24px 0;">
|
||||
<tr>
|
||||
<td align="center">
|
||||
<a href="{{ $portalUrl }}" class="email-button" style="display:inline-block;background:#4f46e5;color:#ffffff;text-decoration:none;padding:12px 28px;border-radius:10px;font-size:14px;font-weight:600;">
|
||||
Open your speaker page
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<div class="email-details">
|
||||
<p class="email-details-title">What to expect</p>
|
||||
<div class="checklist-item">
|
||||
<div class="checklist-icon">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"/></svg>
|
||||
</div>
|
||||
<div class="checklist-content">
|
||||
<p class="checklist-title">No attendee registration</p>
|
||||
<p class="checklist-desc">Speakers skip the public registration flow.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="checklist-item">
|
||||
<div class="checklist-icon">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"/></svg>
|
||||
</div>
|
||||
<div class="checklist-content">
|
||||
<p class="checklist-title">Join from your speaker page</p>
|
||||
<p class="checklist-desc">Use the join links when your session is scheduled to open the speaker waiting area.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p class="email-text-sm">
|
||||
Or open this link: <a href="{{ $portalUrl }}" style="color:#4f46e5;">{{ $portalUrl }}</a>
|
||||
</p>
|
||||
@endsection
|
||||
|
||||
Reference in New Issue
Block a user