FabioFratini 7 місяців тому
батько
коміт
52692f46e2
2 змінених файлів з 98 додано та 40 видалено
  1. 36 4
      app/Http/Livewire/User.php
  2. 62 36
      resources/views/emails/welcome-user.blade.php

+ 36 - 4
app/Http/Livewire/User.php

@@ -292,8 +292,37 @@ class User extends Component
             return false;
         }
     }
+    public function sendSimpleWelcomeEmail($email, $userData)
+    {
+        try {
+            $subject = "Benvenuto su " . $userData['company'] . " – Account Creato";
+
+            $message = "Ciao " . $userData['name'] . " " . $userData['cognome'] . ",\n\n";
+            $message .= "Il tuo account è stato creato con successo su " . $userData['company'] . ".\n\n";
+            $message .= "Le tue credenziali di accesso:\n";
+            $message .= "Email: " . $userData['email'] . "\n";
+            $message .= "Password: " . $userData['password'] . "\n\n";
+            $message .= "Per motivi di sicurezza, dovrai cambiare la password al primo accesso.\n\n";
+            $message .= "Accedi ora: " . $userData['login_url'] . "\n\n";
+            $message .= "Grazie e benvenuto!\n";
+            $message .= "Il team di " . $userData['company'];
+
+            // Send simple text email
+            mail($email, $subject, $message, [
+                'From' => config('mail.from.address'),
+                'Reply-To' => config('mail.from.address'),
+                'Content-Type' => 'text/plain; charset=UTF-8'
+            ]);
 
-
+            return true;
+        } catch (\Exception $e) {
+            Log::error('Simple email sending failed', [
+                'email' => $email,
+                'error' => $e->getMessage()
+            ]);
+            return false;
+        }
+    }
     public function resetFields()
     {
         $this->name = '';
@@ -416,12 +445,15 @@ class User extends Component
 
                 if (!$emailSent) {
                     Log::info('HTML email failed, trying simple email', ['email' => $this->email]);
-                    $emailSent = $this->sendSimpleWelcomeEmail([
+                    $emailSent = $this->sendSimpleWelcomeEmail($this->email, [
                         'name' => $this->name,
                         'cognome' => $this->cognome,
                         'email' => $this->email,
-                        'level' => $this->level
-                    ], $plainPassword);
+                        'password' => $plainPassword,
+                        'level' => $this->level,
+                        'company' => 'Leezard',
+                        'login_url' => url('/')
+                    ]);
                 }
 
                 if ($emailSent) {

+ 62 - 36
resources/views/emails/welcome-user.blade.php

@@ -3,7 +3,7 @@
 <head>
     <meta charset="UTF-8">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
-    <title>Benvenuto su Leezard.cloud – Attiva il tuo account</title>
+    <title>Benvenuto - Account Creato</title>
     <style>
         body {
             font-family: Arial, sans-serif;
@@ -25,36 +25,37 @@
             padding: 30px;
             border-radius: 0 0 8px 8px;
         }
-        .activation-box {
+        .credentials-box {
             background-color: white;
             border: 2px solid #0C6197;
             border-radius: 8px;
             padding: 20px;
             margin: 20px 0;
-            text-align: center;
         }
-        .activation-button {
-            display: inline-block;
-            background-color: #0C6197;
-            color: white;
-            padding: 15px 40px;
-            text-decoration: none;
-            border-radius: 5px;
-            margin: 20px 0;
-            font-weight: bold;
+        .credential-item {
+            margin: 10px 0;
             font-size: 16px;
         }
-        .activation-button:hover {
-            background-color: #094c73;
+        .credential-label {
+            font-weight: bold;
+            color: #007bff;
         }
-        .link-box {
+        .credential-value {
             background-color: #e9ecef;
-            padding: 15px;
+            padding: 5px 10px;
             border-radius: 4px;
             font-family: monospace;
+            margin-left: 10px;
+        }
+        .login-button {
+            display: inline-block;
+            background-color: #0C6197;
+            color: white;
+            padding: 12px 30px;
+            text-decoration: none;
+            border-radius: 5px;
             margin: 20px 0;
-            word-break: break-all;
-            font-size: 14px;
+            font-weight: bold;
         }
         .footer {
             margin-top: 30px;
@@ -71,42 +72,67 @@
             border-radius: 5px;
             margin: 20px 0;
         }
-        .platform-name {
-            font-weight: bold;
-            color: #0C6197;
-        }
     </style>
 </head>
 <body>
     <div class="header">
-        <h1>🎉 Benvenuto su Leezard.cloud</h1>
+        <h1>🎉 Benvenuto in {{ $company }}!</h1>
     </div>
 
     <div class="content">
-        <h2>Ciao <strong>{{ $name }}</strong>,</h2>
+        <h2>Ciao {{ $name }} {{ $cognome }},</h2>
+
+        <p>Il tuo account è stato creato con successo da <strong>{{ $created_by }}</strong>. Ora puoi accedere alla piattaforma con le credenziali fornite di seguito.</p>
+
+        <div class="credentials-box">
+            <h3>🔐 Le tue credenziali di accesso:</h3>
 
-        <p>è stato creato per te un account su <span class="platform-name">{{ $platform_name }}</span>.</p>
+            <div class="credential-item">
+                <span class="credential-label">Email:</span>
+                <span class="credential-value">{{ $email }}</span>
+            </div>
 
-        <p>Per completare l'attivazione, conferma il tuo indirizzo email e imposta la tua password cliccando sul pulsante qui sotto:</p>
+            <div class="credential-item">
+                <span class="credential-label">Password:</span>
+                <span class="credential-value">{{ $password }}</span>
+            </div>
 
-        <div class="activation-box">
-            <h3>🔐 Attiva il tuo account</h3>
-            <a href="{{ $activation_link }}" class="activation-button" style="color: #FFF!important">🚀 Attiva il tuo account</a>
+            <div class="credential-item">
+                <span class="credential-label">Livello Account:</span>
+                <span class="credential-value">
+                    @if($level == 0)
+                        Amministratore
+                    @elseif($level == 1)
+                        Worker
+                    @else
+                        Istruttore
+                    @endif
+                </span>
+            </div>
         </div>
 
-        <p><strong>Oppure</strong> copia e incolla questo link nel tuo browser:</p>
-        <div class="link-box">
-            {{ $activation_link }}
+        <div class="warning">
+            <strong>⚠️ Importante:</strong> Per motivi di sicurezza, dovrai cambiare la password al primo accesso. Sarai reindirizzato dopo aver effettuato il login.
         </div>
 
+        <div style="text-align: center;">
+            <a href="{{ $login_url }}" class="login-button" style="color: #FFF!important">🚀 Accedi Ora</a>
+        </div>
+
+        <h3>📋 Cosa puoi fare ora:</h3>
+        <ul>
+            <li>Accedi alla piattaforma usando le credenziali sopra</li>
+            <li>Cambia la password per maggiore sicurezza</li>
+            <li>Completa il tuo profilo nella sezione "Profilo"</li>
+
+        </ul>
 
-        <p>Grazie e benvenuto!</p>
-        <p><strong>Il team di Leezard.cloud</strong></p>
+        <p>Se hai domande o problemi nell'accesso, contatta l'amministratore del sistema.</p>
 
         <div class="footer">
-            <p><strong>Leezard.cloud</strong></p>
+            <p><strong>{{ $company }}</strong></p>
             <p>Questa email è stata generata automaticamente. Per favore, non rispondere a questo indirizzo.</p>
-            <p>Data invio: {{ date('d/m/Y H:i') }} ({{ date('T') }})</p>
+            <p>Data creazione account: {{ date('d/m/Y H:i') }} ({{ date('T') }})</p>
         </div>
     </div>
 </body>