mirror of
https://github.com/dyzulk/trustlab-api.git
synced 2026-01-26 21:32:08 +07:00
feat: Add new email templates for password reset, email verification, test, certificate notifications, and inquiry replies, along with a new application logo.
This commit is contained in:
BIN
public/images/logo/logo-outlined.png
Normal file
BIN
public/images/logo/logo-outlined.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 5.4 KiB |
@@ -1,17 +1,88 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
<title>Certificate Expired Alert</title>
|
<title>Certificate Expired Alert</title>
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
||||||
|
line-height: 1.5;
|
||||||
|
color: #374151;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
background-color: #f9fafb;
|
||||||
|
}
|
||||||
|
.container {
|
||||||
|
max-width: 600px;
|
||||||
|
margin: 40px auto;
|
||||||
|
background-color: #ffffff;
|
||||||
|
border-radius: 12px;
|
||||||
|
overflow: hidden;
|
||||||
|
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
|
||||||
|
}
|
||||||
|
.header {
|
||||||
|
padding: 30px 40px;
|
||||||
|
background-color: #fef2f2;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.header img {
|
||||||
|
height: 32px;
|
||||||
|
margin-bottom: 15px;
|
||||||
|
}
|
||||||
|
.content {
|
||||||
|
padding: 40px;
|
||||||
|
}
|
||||||
|
.title {
|
||||||
|
font-size: 24px;
|
||||||
|
font-weight: 700;
|
||||||
|
color: #991b1b;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
.details {
|
||||||
|
background-color: #fef2f2;
|
||||||
|
padding: 20px;
|
||||||
|
border-radius: 8px;
|
||||||
|
margin: 25px 0;
|
||||||
|
border: 1px solid #fee2e2;
|
||||||
|
}
|
||||||
|
.details p {
|
||||||
|
margin: 5px 0;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
.footer {
|
||||||
|
padding: 30px 40px;
|
||||||
|
background-color: #f9fafb;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 12px;
|
||||||
|
color: #6b7280;
|
||||||
|
border-top: 1px solid #e5e7eb;
|
||||||
|
}
|
||||||
|
.button {
|
||||||
|
display: inline-block;
|
||||||
|
padding: 12px 24px;
|
||||||
|
background-color: #dc2626;
|
||||||
|
color: #ffffff;
|
||||||
|
text-decoration: none;
|
||||||
|
border-radius: 6px;
|
||||||
|
font-weight: 600;
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body style="font-family: Arial, sans-serif; line-height: 1.6; color: #333;">
|
<body>
|
||||||
<div style="max-width: 600px; margin: 0 auto; padding: 20px;">
|
<div class="container">
|
||||||
<h2 style="color: #a94442;">URGENT: Certificate Has Expired</h2>
|
<div class="header">
|
||||||
|
<img src="{{ url('/images/logo/logo-outlined.png') }}" alt="TrustLab Logo">
|
||||||
|
</div>
|
||||||
|
<div class="content">
|
||||||
|
<h1 class="title">URGENT: Certificate Has Expired</h1>
|
||||||
|
|
||||||
<p>Hello {{ $certificate->user->first_name ?? 'User' }},</p>
|
<p>Hello {{ $certificate->user->first_name ?? 'User' }},</p>
|
||||||
|
|
||||||
<p>This is a critical notification that your SSL certificate has <strong>ALREADY EXPIRED</strong>.</p>
|
<p>This is a critical notification that your SSL certificate has <strong>ALREADY EXPIRED</strong>.</p>
|
||||||
|
|
||||||
<div style="background-color: #fee; padding: 15px; border-radius: 5px; margin: 20px 0; border: 1px solid #ebccd1;">
|
<div class="details">
|
||||||
<p><strong>Common Name:</strong> {{ $certificate->common_name }}</p>
|
<p><strong>Common Name:</strong> {{ $certificate->common_name }}</p>
|
||||||
<p><strong>Organization:</strong> {{ $certificate->organization }}</p>
|
<p><strong>Organization:</strong> {{ $certificate->organization }}</p>
|
||||||
<p><strong>Key Strength:</strong> {{ $certificate->key_bits }}-bit</p>
|
<p><strong>Key Strength:</strong> {{ $certificate->key_bits }}-bit</p>
|
||||||
@@ -20,7 +91,12 @@
|
|||||||
|
|
||||||
<p>Your services using this certificate may be inaccessible or showing security warnings. Please renew immediately.</p>
|
<p>Your services using this certificate may be inaccessible or showing security warnings. Please renew immediately.</p>
|
||||||
|
|
||||||
<a href="{{ config('app.frontend_url', 'http://localhost:3000') }}/dashboard" style="display: inline-block; padding: 10px 20px; background-color: #d9534f; color: white; text-decoration: none; border-radius: 5px;">Renew Now</a>
|
<a href="{{ config('app.frontend_url', 'http://localhost:3000') }}/dashboard" class="button">Renew Now</a>
|
||||||
|
</div>
|
||||||
|
<div class="footer">
|
||||||
|
<p>© {{ date('Y') }} TrustLab. All rights reserved.</p>
|
||||||
|
<p>This is an automated system message. Please do not reply to this email.</p>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -1,17 +1,94 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
<title>Certificate Expiration Alert</title>
|
<title>Certificate Expiration Alert</title>
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
||||||
|
line-height: 1.5;
|
||||||
|
color: #374151;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
background-color: #f9fafb;
|
||||||
|
}
|
||||||
|
.container {
|
||||||
|
max-width: 600px;
|
||||||
|
margin: 40px auto;
|
||||||
|
background-color: #ffffff;
|
||||||
|
border-radius: 12px;
|
||||||
|
overflow: hidden;
|
||||||
|
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
|
||||||
|
}
|
||||||
|
.header {
|
||||||
|
padding: 30px 40px;
|
||||||
|
background-color: #fffbeb;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.header img {
|
||||||
|
height: 32px;
|
||||||
|
margin-bottom: 15px;
|
||||||
|
}
|
||||||
|
.content {
|
||||||
|
padding: 40px;
|
||||||
|
}
|
||||||
|
.title {
|
||||||
|
font-size: 24px;
|
||||||
|
font-weight: 700;
|
||||||
|
color: #92400e;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
.details {
|
||||||
|
background-color: #f9f9f9;
|
||||||
|
padding: 20px;
|
||||||
|
border-radius: 8px;
|
||||||
|
margin: 25px 0;
|
||||||
|
border: 1px solid #e5e7eb;
|
||||||
|
}
|
||||||
|
.details p {
|
||||||
|
margin: 5px 0;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
.footer {
|
||||||
|
padding: 30px 40px;
|
||||||
|
background-color: #f9fafb;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 12px;
|
||||||
|
color: #6b7280;
|
||||||
|
border-top: 1px solid #e5e7eb;
|
||||||
|
}
|
||||||
|
.button {
|
||||||
|
display: inline-block;
|
||||||
|
padding: 12px 24px;
|
||||||
|
background-color: #3b82f6;
|
||||||
|
color: #ffffff;
|
||||||
|
text-decoration: none;
|
||||||
|
border-radius: 6px;
|
||||||
|
font-weight: 600;
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
|
.note {
|
||||||
|
margin-top: 30px;
|
||||||
|
font-size: 12px;
|
||||||
|
color: #777;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body style="font-family: Arial, sans-serif; line-height: 1.6; color: #333;">
|
<body>
|
||||||
<div style="max-width: 600px; margin: 0 auto; padding: 20px;">
|
<div class="container">
|
||||||
<h2 style="color: #d9534f;">Action Required: Certificate Expiring Soon</h2>
|
<div class="header">
|
||||||
|
<img src="{{ url('/images/logo/logo-outlined.png') }}" alt="TrustLab Logo">
|
||||||
|
</div>
|
||||||
|
<div class="content">
|
||||||
|
<h1 class="title">Action Required: Certificate Expiring Soon</h1>
|
||||||
|
|
||||||
<p>Hello {{ $certificate->user->first_name ?? 'User' }},</p>
|
<p>Hello {{ $certificate->user->first_name ?? 'User' }},</p>
|
||||||
|
|
||||||
<p>This is a notification that one of your SSL certificates is expiring in <strong>{{ $daysRemaining }} days</strong>.</p>
|
<p>This is a notification that one of your SSL certificates is expiring in <strong>{{ $daysRemaining }} days</strong>.</p>
|
||||||
|
|
||||||
<div style="background-color: #f9f9f9; padding: 15px; border-radius: 5px; margin: 20px 0;">
|
<div class="details">
|
||||||
<p><strong>Common Name:</strong> {{ $certificate->common_name }}</p>
|
<p><strong>Common Name:</strong> {{ $certificate->common_name }}</p>
|
||||||
<p><strong>Organization:</strong> {{ $certificate->organization }}</p>
|
<p><strong>Organization:</strong> {{ $certificate->organization }}</p>
|
||||||
<p><strong>Key Strength:</strong> {{ $certificate->key_bits }}-bit</p>
|
<p><strong>Key Strength:</strong> {{ $certificate->key_bits }}-bit</p>
|
||||||
@@ -20,12 +97,17 @@
|
|||||||
|
|
||||||
<p>Please log in to your dashboard to renew this certificate before it expires to ensure uninterrupted service.</p>
|
<p>Please log in to your dashboard to renew this certificate before it expires to ensure uninterrupted service.</p>
|
||||||
|
|
||||||
<a href="{{ config('app.frontend_url', 'http://localhost:3000') }}/dashboard" style="display: inline-block; padding: 10px 20px; background-color: #007bff; color: white; text-decoration: none; border-radius: 5px;">Go to Dashboard</a>
|
<a href="{{ config('app.frontend_url', 'http://localhost:3000') }}/dashboard" class="button">Go to Dashboard</a>
|
||||||
|
|
||||||
<p style="margin-top: 30px; font-size: 12px; color: #777;">
|
<p class="note">
|
||||||
If you have already renewed this certificate, please ignore this message.<br>
|
If you have already renewed this certificate, please ignore this message.<br>
|
||||||
You are receiving this email because you have enabled certificate renewal alerts in your account settings.
|
You are receiving this email because you have enabled certificate renewal alerts in your account settings.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="footer">
|
||||||
|
<p>© {{ date('Y') }} TrustLab. All rights reserved.</p>
|
||||||
|
<p>This is an automated system message. Please do not reply to this email.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -2,10 +2,12 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>TrustLab Support Inquiry Reply</title>
|
||||||
<style>
|
<style>
|
||||||
body {
|
body {
|
||||||
font-family: 'Inter', system-ui, -apple-system, sans-serif;
|
font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
||||||
line-height: 1.6;
|
line-height: 1.5;
|
||||||
color: #374151;
|
color: #374151;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
@@ -14,21 +16,24 @@
|
|||||||
.container {
|
.container {
|
||||||
max-width: 600px;
|
max-width: 600px;
|
||||||
margin: 40px auto;
|
margin: 40px auto;
|
||||||
background: #ffffff;
|
background-color: #ffffff;
|
||||||
border-radius: 16px;
|
border-radius: 12px;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1);
|
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
|
||||||
border: 1px solid #e5e7eb;
|
|
||||||
}
|
}
|
||||||
.header {
|
.header {
|
||||||
|
padding: 30px 40px;
|
||||||
background-color: #111827;
|
background-color: #111827;
|
||||||
padding: 32px;
|
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
.header img {
|
||||||
|
height: 32px;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
}
|
||||||
.header h1 {
|
.header h1 {
|
||||||
color: #ffffff;
|
color: #ffffff;
|
||||||
margin: 0;
|
margin: 10px 0 0 0;
|
||||||
font-size: 24px;
|
font-size: 20px;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
}
|
}
|
||||||
.content {
|
.content {
|
||||||
@@ -38,15 +43,18 @@
|
|||||||
background-color: #f3f4f6;
|
background-color: #f3f4f6;
|
||||||
border-radius: 12px;
|
border-radius: 12px;
|
||||||
padding: 24px;
|
padding: 24px;
|
||||||
margin-bottom: 32px;
|
margin: 25px 0;
|
||||||
border-left: 4px solid #3b82f6;
|
border-left: 4px solid #3b82f6;
|
||||||
|
font-size: 15px;
|
||||||
|
color: #1f2937;
|
||||||
}
|
}
|
||||||
.footer {
|
.footer {
|
||||||
padding: 32px;
|
padding: 30px 40px;
|
||||||
|
background-color: #f9fafb;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
font-size: 14px;
|
font-size: 12px;
|
||||||
color: #6b7280;
|
color: #6b7280;
|
||||||
border-top: 1px solid #f3f4f6;
|
border-top: 1px solid #e5e7eb;
|
||||||
}
|
}
|
||||||
.original-message {
|
.original-message {
|
||||||
margin-top: 40px;
|
margin-top: 40px;
|
||||||
@@ -60,16 +68,19 @@
|
|||||||
<body>
|
<body>
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="header">
|
<div class="header">
|
||||||
<h1>TrustLab Support</h1>
|
<img src="{{ url('/images/logo/logo-outlined.png') }}" alt="TrustLab Logo">
|
||||||
|
<h1>Support Reply</h1>
|
||||||
</div>
|
</div>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<p>Hello {{ $inquiry->name }},</p>
|
<p>Hello {{ $inquiry->name }},</p>
|
||||||
|
|
||||||
|
<p>Thank you for contacting TrustLab. Our team has reviewed your inquiry and has the following response:</p>
|
||||||
|
|
||||||
<div class="reply-box">
|
<div class="reply-box">
|
||||||
{!! nl2br(e($replyMessage)) !!}
|
{!! nl2br(e($replyMessage)) !!}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>Best regards,<br>The TrustLab Team</p>
|
<p>Best regards,<br><strong>The TrustLab Team</strong></p>
|
||||||
|
|
||||||
<div class="original-message">
|
<div class="original-message">
|
||||||
<p><strong>Original Message:</strong></p>
|
<p><strong>Original Message:</strong></p>
|
||||||
@@ -77,7 +88,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="footer">
|
<div class="footer">
|
||||||
© {{ date('Y') }} TrustLab. All rights reserved.
|
<p>© {{ date('Y') }} TrustLab. All rights reserved.</p>
|
||||||
|
<p>This is an automated system message. Please do not reply to this email.</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
@@ -2,10 +2,12 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>Reset Your Password</title>
|
||||||
<style>
|
<style>
|
||||||
body {
|
body {
|
||||||
font-family: 'Inter', system-ui, -apple-system, sans-serif;
|
font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
||||||
line-height: 1.6;
|
line-height: 1.5;
|
||||||
color: #374151;
|
color: #374151;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
@@ -14,65 +16,71 @@
|
|||||||
.container {
|
.container {
|
||||||
max-width: 600px;
|
max-width: 600px;
|
||||||
margin: 40px auto;
|
margin: 40px auto;
|
||||||
background: #ffffff;
|
background-color: #ffffff;
|
||||||
border-radius: 16px;
|
border-radius: 12px;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1);
|
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
|
||||||
border: 1px solid #e5e7eb;
|
|
||||||
}
|
}
|
||||||
.header {
|
.header {
|
||||||
background-color: #111827;
|
padding: 30px 40px;
|
||||||
padding: 32px;
|
background-color: #eff6ff;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
.header h1 {
|
.header img {
|
||||||
color: #ffffff;
|
height: 32px;
|
||||||
margin: 0;
|
margin-bottom: 15px;
|
||||||
font-size: 24px;
|
|
||||||
font-weight: 700;
|
|
||||||
}
|
}
|
||||||
.content {
|
.content {
|
||||||
padding: 40px;
|
padding: 40px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
.content p {
|
.title {
|
||||||
margin-bottom: 24px;
|
font-size: 24px;
|
||||||
|
font-weight: 700;
|
||||||
|
color: #111827;
|
||||||
|
margin-bottom: 20px;
|
||||||
}
|
}
|
||||||
.btn {
|
.footer {
|
||||||
|
padding: 30px 40px;
|
||||||
|
background-color: #f9fafb;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 12px;
|
||||||
|
color: #6b7280;
|
||||||
|
border-top: 1px solid #e5e7eb;
|
||||||
|
}
|
||||||
|
.button {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
padding: 12px 32px;
|
padding: 12px 32px;
|
||||||
background-color: #465fff;
|
background-color: #3b82f6;
|
||||||
color: #ffffff !important;
|
color: #ffffff !important;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
margin-bottom: 32px;
|
margin: 25px 0;
|
||||||
}
|
|
||||||
.footer {
|
|
||||||
padding: 32px;
|
|
||||||
text-align: center;
|
|
||||||
font-size: 14px;
|
|
||||||
color: #6b7280;
|
|
||||||
border-top: 1px solid #f3f4f6;
|
|
||||||
}
|
}
|
||||||
.sub-link {
|
.sub-link {
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
color: #9ca3af;
|
color: #9ca3af;
|
||||||
word-break: break-all;
|
word-break: break-all;
|
||||||
|
margin-top: 30px;
|
||||||
|
padding-top: 20px;
|
||||||
|
border-top: 1px solid #f3f4f6;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="header">
|
<div class="header">
|
||||||
<h1>Reset Your Password</h1>
|
<img src="{{ url('/images/logo/logo-outlined.png') }}" alt="TrustLab Logo">
|
||||||
</div>
|
</div>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
|
<h1 class="title">Reset Your Password</h1>
|
||||||
|
|
||||||
<p>Hello {{ $name }},</p>
|
<p>Hello {{ $name }},</p>
|
||||||
|
|
||||||
<p>You are receiving this email because we received a password reset request for your TrustLab account.</p>
|
<p>You are receiving this email because we received a password reset request for your TrustLab account.</p>
|
||||||
|
|
||||||
<a href="{{ $url }}" class="btn">Reset Password</a>
|
<a href="{{ $url }}" class="button">Reset Password</a>
|
||||||
|
|
||||||
<p>This password reset link will expire in 60 minutes.</p>
|
<p>This password reset link will expire in 60 minutes.</p>
|
||||||
<p>If you did not request a password reset, no further action is required.</p>
|
<p>If you did not request a password reset, no further action is required.</p>
|
||||||
@@ -83,7 +91,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="footer">
|
<div class="footer">
|
||||||
© {{ date('Y') }} TrustLab. All rights reserved.
|
<p>© {{ date('Y') }} TrustLab. All rights reserved.</p>
|
||||||
|
<p>This is an automated system message. Please do not reply to this email.</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
@@ -83,7 +83,7 @@
|
|||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="header">
|
<div class="header">
|
||||||
<!-- Using CID for embedding logo or absolute URL if accessible -->
|
<!-- Using CID for embedding logo or absolute URL if accessible -->
|
||||||
<img src="{{ url('/images/logo/logo.png') }}" alt="TrustLab Logo">
|
<img src="{{ url('/images/logo/logo-outlined.png') }}" alt="TrustLab Logo">
|
||||||
</div>
|
</div>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<h1 class="title">SMTP Connection Test</h1>
|
<h1 class="title">SMTP Connection Test</h1>
|
||||||
|
|||||||
@@ -2,10 +2,12 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>TrustLab Email Verification</title>
|
||||||
<style>
|
<style>
|
||||||
body {
|
body {
|
||||||
font-family: 'Inter', system-ui, -apple-system, sans-serif;
|
font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
||||||
line-height: 1.6;
|
line-height: 1.5;
|
||||||
color: #374151;
|
color: #374151;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
@@ -14,17 +16,20 @@
|
|||||||
.container {
|
.container {
|
||||||
max-width: 600px;
|
max-width: 600px;
|
||||||
margin: 40px auto;
|
margin: 40px auto;
|
||||||
background: #ffffff;
|
background-color: #ffffff;
|
||||||
border-radius: 16px;
|
border-radius: 12px;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1);
|
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
|
||||||
border: 1px solid #e5e7eb;
|
|
||||||
}
|
}
|
||||||
.header {
|
.header {
|
||||||
|
padding: 30px 40px;
|
||||||
background-color: #111827;
|
background-color: #111827;
|
||||||
padding: 32px;
|
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
.header img {
|
||||||
|
height: 32px;
|
||||||
|
margin-bottom: 15px;
|
||||||
|
}
|
||||||
.header h1 {
|
.header h1 {
|
||||||
color: #ffffff;
|
color: #ffffff;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
@@ -35,10 +40,21 @@
|
|||||||
padding: 40px;
|
padding: 40px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
.content p {
|
.title {
|
||||||
margin-bottom: 24px;
|
font-size: 24px;
|
||||||
|
font-weight: 700;
|
||||||
|
color: #111827;
|
||||||
|
margin-bottom: 20px;
|
||||||
}
|
}
|
||||||
.btn {
|
.footer {
|
||||||
|
padding: 30px 40px;
|
||||||
|
background-color: #f9fafb;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 12px;
|
||||||
|
color: #6b7280;
|
||||||
|
border-top: 1px solid #e5e7eb;
|
||||||
|
}
|
||||||
|
.button {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
padding: 12px 32px;
|
padding: 12px 32px;
|
||||||
background-color: #465fff;
|
background-color: #465fff;
|
||||||
@@ -46,33 +62,30 @@
|
|||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
margin-bottom: 32px;
|
margin: 25px 0;
|
||||||
}
|
|
||||||
.footer {
|
|
||||||
padding: 32px;
|
|
||||||
text-align: center;
|
|
||||||
font-size: 14px;
|
|
||||||
color: #6b7280;
|
|
||||||
border-top: 1px solid #f3f4f6;
|
|
||||||
}
|
}
|
||||||
.sub-link {
|
.sub-link {
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
color: #9ca3af;
|
color: #9ca3af;
|
||||||
word-break: break-all;
|
word-break: break-all;
|
||||||
|
margin-top: 30px;
|
||||||
|
padding-top: 20px;
|
||||||
|
border-top: 1px solid #f3f4f6;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="header">
|
<div class="header">
|
||||||
<h1>TrustLab Verification</h1>
|
<img src="{{ url('/images/logo/logo-outlined.png') }}" alt="TrustLab Logo">
|
||||||
|
<h1>Email Verification</h1>
|
||||||
</div>
|
</div>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<p>Hello {{ $name }},</p>
|
<p>Hello {{ $name }},</p>
|
||||||
|
|
||||||
<p>Thank you for joining TrustLab! Before you can start managing your certificates and API keys, we need you to verify your email address.</p>
|
<p>Thank you for joining TrustLab! Before you can start managing your certificates and API keys, we need you to verify your email address.</p>
|
||||||
|
|
||||||
<a href="{{ $url }}" class="btn">Verify Email Address</a>
|
<a href="{{ $url }}" class="button">Verify Email Address</a>
|
||||||
|
|
||||||
<p>If you did not create an account, no further action is required.</p>
|
<p>If you did not create an account, no further action is required.</p>
|
||||||
|
|
||||||
@@ -82,7 +95,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="footer">
|
<div class="footer">
|
||||||
© {{ date('Y') }} TrustLab. All rights reserved.
|
<p>© {{ date('Y') }} TrustLab. All rights reserved.</p>
|
||||||
|
<p>This is an automated system message. Please do not reply to this email.</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
Reference in New Issue
Block a user