url = $url; $this->userName = $userName; } public function build() { $app = config('app.name'); $expires = config('auth.passwords.' . config('auth.defaults.passwords') . '.expire'); $logoName = 'logo_sidakdesa'; // Content-ID yang kita tentukan sendiri $logoPath = public_path('assets/images/sidak-desa.jpg'); $hasLogo = is_file($logoPath); if ($hasLogo) { $this->withSymfonyMessage(function ($message) use ($logoPath, $logoName) { // Pastikan content-type benar (jpeg/png sesuai filemu) $message->embedFromPath($logoPath, $logoName, 'image/jpeg'); }); } // Fallback URL (untuk produksi HARUS https & publik) $logoUrl = asset('assets/images/sidak-desa.jpg'); return $this->subject("Reset Kata Sandi - {$app}") ->view('emails.forgot-password', [ 'url' => $this->url, 'userName' => $this->userName, 'appName' => $app, 'expires' => $expires, 'hasLogo' => $hasLogo, 'logoSrc' => $hasLogo ? "cid:{$logoName}" : $logoUrl, // <-- langsung bentuk "cid:..." 'brand' => [ 'primary' => '#1f7a8c', 'text' => '#2b2b2b', 'muted' => '#6b7280', 'bg' => '#edf2f7', 'card' => '#ffffff', ], ]); } }