mirror of
https://github.com/NNTmux/newznab-tmux.git
synced 2026-08-28 17:01:16 +00:00
Update email look
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Observers;
|
||||
|
||||
use App\Jobs\SendAccountChangedEmail;
|
||||
use App\Models\User;
|
||||
use App\Models\UserActivity;
|
||||
|
||||
@@ -51,6 +52,9 @@ class UserActivityObserver
|
||||
'updated_by' => auth()->user()?->username ?? 'System',
|
||||
],
|
||||
]);
|
||||
|
||||
// Send email notification to user about role change
|
||||
SendAccountChangedEmail::dispatch($user);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,13 +1,24 @@
|
||||
@extends('emails.email_layout')
|
||||
|
||||
@section('title')
|
||||
Your account is about to expire
|
||||
Account Expiration Notice
|
||||
@endsection
|
||||
|
||||
@section('site_name', $site)
|
||||
|
||||
@section('content')
|
||||
Dear {{ $username }},
|
||||
<br>
|
||||
Your account role {{ $account }} is about to expire in less than {{ $days }} day(s).
|
||||
<br><br><br>
|
||||
Greetings from {{ $site }}
|
||||
<p class="greeting">Dear {{ $username }},</p>
|
||||
|
||||
<div class="warning-box">
|
||||
<strong>⚠️ Attention Required:</strong> Your account role <strong>{{ $account }}</strong> is about to expire in less than <strong>{{ $days }} day(s)</strong>.
|
||||
</div>
|
||||
|
||||
<p>To continue enjoying uninterrupted access to all your current features and benefits, please take action before your subscription expires.</p>
|
||||
|
||||
<p>If you have any questions about renewing your account or need assistance, please don't hesitate to contact us.</p>
|
||||
|
||||
<div class="signature">
|
||||
<p>Best regards,</p>
|
||||
<p><strong>The {{ $site }} Team</strong></p>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@@ -1,13 +1,26 @@
|
||||
@extends('emails.email_layout')
|
||||
|
||||
@section('title')
|
||||
Your account level has been changed
|
||||
Account Level Changed
|
||||
@endsection
|
||||
|
||||
@section('site_name', $site)
|
||||
|
||||
@section('content')
|
||||
Dear {{ $username }},
|
||||
<br>
|
||||
Your account has been changed to {{ $account }}
|
||||
<br><br><br>
|
||||
Greetings from {{ $site }}
|
||||
<p class="greeting">Dear {{ $username }},</p>
|
||||
|
||||
<p>We wanted to let you know that your account level has been updated.</p>
|
||||
|
||||
<div class="info-box">
|
||||
<strong>🔄 New Account Level:</strong> {{ $account }}
|
||||
</div>
|
||||
|
||||
<p>Your new account level is now active, and you can start enjoying all the associated features and benefits immediately.</p>
|
||||
|
||||
<p>If you have any questions about your new account level or need assistance, please don't hesitate to contact us.</p>
|
||||
|
||||
<div class="signature">
|
||||
<p>Best regards,</p>
|
||||
<p><strong>The {{ $site }} Team</strong></p>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@@ -1,9 +1,22 @@
|
||||
@extends('emails.email_layout')
|
||||
|
||||
@section('title')
|
||||
User Account deleted
|
||||
User Account Deleted
|
||||
@endsection
|
||||
|
||||
@section('site_name', $site)
|
||||
|
||||
@section('content')
|
||||
User <b>{{ $username }}</b> has deleted his/hers account from {{ $site }}.
|
||||
<p>This is a notification that a user has deleted their account from <strong>{{ $site }}</strong>.</p>
|
||||
|
||||
<div class="info-box">
|
||||
<strong>👤 Deleted Account:</strong> {{ $username }}
|
||||
</div>
|
||||
|
||||
<p>No further action is required. This email is for informational purposes only.</p>
|
||||
|
||||
<div class="signature">
|
||||
<p>Best regards,</p>
|
||||
<p><strong>The {{ $site }} System</strong></p>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@@ -1,13 +1,26 @@
|
||||
@extends('emails.email_layout')
|
||||
|
||||
@section('title')
|
||||
Your account has expired and account level has been downgraded
|
||||
Account Expired
|
||||
@endsection
|
||||
|
||||
@section('site_name', $site)
|
||||
|
||||
@section('content')
|
||||
Dear {{ $username }},
|
||||
<br>
|
||||
Your account has expired and has been downgraded to {{ $account }}
|
||||
<br><br><br>
|
||||
Greetings from {{ $site }}
|
||||
<p class="greeting">Dear {{ $username }},</p>
|
||||
|
||||
<p>We regret to inform you that your account subscription has expired.</p>
|
||||
|
||||
<div class="warning-box">
|
||||
<strong>📉 Account Downgraded:</strong> Your account has been automatically downgraded to <strong>{{ $account }}</strong>.
|
||||
</div>
|
||||
|
||||
<p>Don't worry – you can still access the site with your downgraded account level. If you'd like to regain access to all your previous features and benefits, please consider renewing your subscription.</p>
|
||||
|
||||
<p>If you have any questions or need assistance with the renewal process, please don't hesitate to contact us.</p>
|
||||
|
||||
<div class="signature">
|
||||
<p>Best regards,</p>
|
||||
<p><strong>The {{ $site }} Team</strong></p>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@@ -1,9 +1,18 @@
|
||||
@extends('emails.email_layout')
|
||||
|
||||
@section('title')
|
||||
Contact form submitted
|
||||
Contact Form Submission
|
||||
@endsection
|
||||
|
||||
@section('content')
|
||||
{!! nl2br(e($mailBody)) !!}
|
||||
<p>A new contact form has been submitted.</p>
|
||||
|
||||
<div class="info-box">
|
||||
<strong>📝 Message:</strong>
|
||||
<div style="margin-top: 10px;">
|
||||
{!! nl2br(e($mailBody)) !!}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>Please respond to this inquiry at your earliest convenience.</p>
|
||||
@endsection
|
||||
|
||||
@@ -1,49 +1,152 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>
|
||||
@yield('title')
|
||||
</title>
|
||||
|
||||
<link href="https://fonts.googleapis.com/css?family=Lato:100" rel="stylesheet" type="text/css">
|
||||
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>@yield('title')</title>
|
||||
<style>
|
||||
html, body {
|
||||
height: 40%;
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
|
||||
line-height: 1.6;
|
||||
color: #333333;
|
||||
background-color: #f4f4f7;
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
.email-wrapper {
|
||||
max-width: 600px;
|
||||
margin: 0 auto;
|
||||
background-color: #ffffff;
|
||||
border-radius: 8px;
|
||||
overflow: hidden;
|
||||
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
|
||||
}
|
||||
|
||||
.email-header {
|
||||
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
||||
color: #ffffff;
|
||||
padding: 30px 40px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.email-header h1 {
|
||||
font-size: 24px;
|
||||
font-weight: 600;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
width: 40%;
|
||||
color: #0a2b1d;
|
||||
display: table;
|
||||
font-weight: 100;
|
||||
font-family: \'Lato\', sans-serif;
|
||||
}
|
||||
|
||||
.container {
|
||||
text-align: center;
|
||||
display: table-cell;
|
||||
vertical-align: middle;
|
||||
.email-body {
|
||||
padding: 40px;
|
||||
}
|
||||
|
||||
.content {
|
||||
text-align: center;
|
||||
.email-content {
|
||||
font-size: 16px;
|
||||
color: #51545e;
|
||||
}
|
||||
|
||||
.email-content p {
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.greeting {
|
||||
font-size: 18px;
|
||||
color: #333333;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.signature {
|
||||
margin-top: 30px;
|
||||
padding-top: 20px;
|
||||
border-top: 1px solid #eaeaea;
|
||||
color: #6b6e76;
|
||||
}
|
||||
|
||||
.button {
|
||||
display: inline-block;
|
||||
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
||||
color: #ffffff !important;
|
||||
text-decoration: none;
|
||||
padding: 14px 28px;
|
||||
border-radius: 6px;
|
||||
font-weight: 600;
|
||||
margin: 20px 0;
|
||||
transition: transform 0.2s ease;
|
||||
}
|
||||
|
||||
.title {
|
||||
font-size: 72px;
|
||||
margin-bottom: 40px;
|
||||
.button:hover {
|
||||
transform: translateY(-2px);
|
||||
}
|
||||
|
||||
.info-box {
|
||||
background-color: #f8f9fa;
|
||||
border-left: 4px solid #667eea;
|
||||
padding: 16px 20px;
|
||||
margin: 20px 0;
|
||||
border-radius: 0 6px 6px 0;
|
||||
}
|
||||
|
||||
.warning-box {
|
||||
background-color: #fff3cd;
|
||||
border-left: 4px solid #ffc107;
|
||||
padding: 16px 20px;
|
||||
margin: 20px 0;
|
||||
border-radius: 0 6px 6px 0;
|
||||
color: #856404;
|
||||
}
|
||||
|
||||
.email-footer {
|
||||
background-color: #f8f9fa;
|
||||
padding: 24px 40px;
|
||||
text-align: center;
|
||||
font-size: 13px;
|
||||
color: #9a9ea6;
|
||||
}
|
||||
|
||||
.email-footer p {
|
||||
margin: 4px 0;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #667eea;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.link-text {
|
||||
word-break: break-all;
|
||||
background-color: #f8f9fa;
|
||||
padding: 12px 16px;
|
||||
border-radius: 6px;
|
||||
font-family: monospace;
|
||||
font-size: 14px;
|
||||
display: block;
|
||||
margin: 10px 0;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<div>
|
||||
@yield('content')
|
||||
<div class="email-wrapper">
|
||||
<div class="email-header">
|
||||
<h1>@yield('title')</h1>
|
||||
</div>
|
||||
<div class="email-body">
|
||||
<div class="email-content">
|
||||
@yield('content')
|
||||
</div>
|
||||
</div>
|
||||
<div class="email-footer">
|
||||
<p>© {{ date('Y') }} @yield('site_name', config('app.name')). All rights reserved.</p>
|
||||
<p>This is an automated message. Please do not reply directly to this email.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
||||
@@ -1,14 +1,29 @@
|
||||
@extends('emails.email_layout')
|
||||
|
||||
@section('title')
|
||||
Forgotten Password
|
||||
Password Reset Request
|
||||
@endsection
|
||||
|
||||
@section('site_name', $site)
|
||||
|
||||
@section('content')
|
||||
<p class="greeting">Hello,</p>
|
||||
|
||||
Someone has requested a password reset for this email address.
|
||||
<br>
|
||||
To reset the password use the following link: <a href="{{$resetLink}}">{{$resetLink}}</a><br>
|
||||
<br><br><br>
|
||||
Greetings from {{ $site }}
|
||||
<p>We received a request to reset the password associated with this email address.</p>
|
||||
|
||||
<div style="text-align: center;">
|
||||
<a href="{{ $resetLink }}" class="button">Reset Password</a>
|
||||
</div>
|
||||
|
||||
<p>Or copy and paste this link into your browser:</p>
|
||||
<span class="link-text">{{ $resetLink }}</span>
|
||||
|
||||
<div class="warning-box">
|
||||
<strong>🔒 Security Notice:</strong> If you didn't request this password reset, you can safely ignore this email. Your password will remain unchanged.
|
||||
</div>
|
||||
|
||||
<div class="signature">
|
||||
<p>Best regards,</p>
|
||||
<p><strong>The {{ $site }} Team</strong></p>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@@ -1,99 +1,35 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>Invitation to {{ $siteName }}</title>
|
||||
<style>
|
||||
body {
|
||||
font-family: Arial, sans-serif;
|
||||
line-height: 1.6;
|
||||
color: #333;
|
||||
max-width: 600px;
|
||||
margin: 0 auto;
|
||||
padding: 20px;
|
||||
}
|
||||
.header {
|
||||
background-color: #f8f9fa;
|
||||
padding: 20px;
|
||||
text-align: center;
|
||||
border-radius: 8px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
.content {
|
||||
background-color: #ffffff;
|
||||
padding: 20px;
|
||||
border: 1px solid #dee2e6;
|
||||
border-radius: 8px;
|
||||
}
|
||||
.button {
|
||||
display: inline-block;
|
||||
background-color: #007bff;
|
||||
color: #ffffff;
|
||||
text-decoration: none;
|
||||
padding: 12px 24px;
|
||||
border-radius: 4px;
|
||||
margin: 20px 0;
|
||||
}
|
||||
.button:hover {
|
||||
background-color: #0056b3;
|
||||
}
|
||||
.footer {
|
||||
margin-top: 20px;
|
||||
padding: 20px;
|
||||
background-color: #f8f9fa;
|
||||
border-radius: 8px;
|
||||
font-size: 12px;
|
||||
color: #6c757d;
|
||||
}
|
||||
.expiry-notice {
|
||||
background-color: #fff3cd;
|
||||
border: 1px solid #ffeaa7;
|
||||
color: #856404;
|
||||
padding: 12px;
|
||||
border-radius: 4px;
|
||||
margin: 15px 0;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="header">
|
||||
<h1>You're Invited!</h1>
|
||||
<p>{{ $invitedBy->username }} has invited you to join {{ $siteName }}</p>
|
||||
@extends('emails.email_layout')
|
||||
|
||||
@section('title')
|
||||
You're Invited to {{ $siteName }}!
|
||||
@endsection
|
||||
|
||||
@section('site_name', $siteName)
|
||||
|
||||
@section('content')
|
||||
<p class="greeting">Hello!</p>
|
||||
|
||||
<p>Great news! <strong>{{ $invitedBy->username }}</strong> has invited you to join <strong>{{ $siteName }}</strong>, our exclusive community.</p>
|
||||
|
||||
<div style="text-align: center;">
|
||||
<a href="{{ $registerUrl }}" class="button">Accept Invitation</a>
|
||||
</div>
|
||||
|
||||
<div class="content">
|
||||
<h2>Welcome to {{ $siteName }}</h2>
|
||||
<p>Or copy and paste this link into your browser:</p>
|
||||
<span class="link-text">{{ $registerUrl }}</span>
|
||||
|
||||
<p>Hello!</p>
|
||||
<div class="warning-box">
|
||||
<strong>⚠️ Important:</strong> This invitation will expire on <strong>{{ $expiresAt->format('F j, Y \a\t g:i A') }}</strong>. Please complete your registration before this date.
|
||||
</div>
|
||||
|
||||
<p>You have been invited by <strong>{{ $invitedBy->username }}</strong> to join {{ $siteName }}, our exclusive community.</p>
|
||||
<div class="info-box">
|
||||
<strong>💡 What's Next?</strong> Click the button above to create your account and start exploring everything {{ $siteName }} has to offer.
|
||||
</div>
|
||||
|
||||
<p>To accept this invitation and create your account, click the button below:</p>
|
||||
|
||||
<div style="text-align: center;">
|
||||
<a href="{{ $registerUrl }}" class="button">Accept Invitation</a>
|
||||
</div>
|
||||
|
||||
<p>Or copy and paste this link into your browser:</p>
|
||||
<p style="word-break: break-all; background-color: #f8f9fa; padding: 10px; border-radius: 4px;">
|
||||
{{ $registerUrl }}
|
||||
</p>
|
||||
|
||||
<div class="expiry-notice">
|
||||
<strong>⚠️ Important:</strong> This invitation will expire on {{ $expiresAt->format('F j, Y \a\t g:i A') }}.
|
||||
Please complete your registration before this date.
|
||||
</div>
|
||||
|
||||
<p>If you have any questions, please don't hesitate to contact us.</p>
|
||||
<p>If you have any questions, please don't hesitate to contact us after registering.</p>
|
||||
|
||||
<div class="signature">
|
||||
<p>Welcome aboard!</p>
|
||||
<p>The {{ $siteName }} Team</p>
|
||||
<p><strong>The {{ $siteName }} Team</strong></p>
|
||||
</div>
|
||||
|
||||
<div class="footer">
|
||||
<p>This invitation was sent to {{ $invitation->email }}. If you did not expect this invitation, you can safely ignore this email.</p>
|
||||
<p>© {{ date('Y') }} {{ $siteName }}. All rights reserved.</p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@endsection
|
||||
|
||||
@@ -1,9 +1,22 @@
|
||||
@extends('emails.email_layout')
|
||||
|
||||
@section('title')
|
||||
New user registered
|
||||
New User Registration
|
||||
@endsection
|
||||
|
||||
@section('site_name', $site)
|
||||
|
||||
@section('content')
|
||||
User <b>{{ $username }}</b> has registered a new account on {{ $site }}.
|
||||
<p>A new user has registered on <strong>{{ $site }}</strong>.</p>
|
||||
|
||||
<div class="info-box">
|
||||
<strong>👤 New User:</strong> {{ $username }}
|
||||
</div>
|
||||
|
||||
<p>This is an automated notification. No action is required unless you need to review the new registration.</p>
|
||||
|
||||
<div class="signature">
|
||||
<p>Best regards,</p>
|
||||
<p><strong>The {{ $site }} System</strong></p>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@@ -1,13 +1,29 @@
|
||||
@extends('emails.email_layout')
|
||||
|
||||
@section('title')
|
||||
Forgotten Password
|
||||
Password Reset Successful
|
||||
@endsection
|
||||
|
||||
@section('site_name', $site)
|
||||
|
||||
@section('content')
|
||||
Dear {{ $userName }},
|
||||
<br>
|
||||
Your password has been reset to: {{ $newPass }}
|
||||
<br><br><br>
|
||||
Greetings from {{ $site }}
|
||||
<p class="greeting">Dear {{ $userName }},</p>
|
||||
|
||||
<p>Your password has been successfully reset.</p>
|
||||
|
||||
<div class="info-box">
|
||||
<strong>🔑 Your New Password:</strong>
|
||||
<div style="margin-top: 10px; font-family: monospace; font-size: 18px; letter-spacing: 2px;">{{ $newPass }}</div>
|
||||
</div>
|
||||
|
||||
<div class="warning-box">
|
||||
<strong>🔒 Security Recommendation:</strong> For your security, we strongly recommend changing this password to something memorable after logging in.
|
||||
</div>
|
||||
|
||||
<p>If you did not request this password reset, please contact us immediately.</p>
|
||||
|
||||
<div class="signature">
|
||||
<p>Best regards,</p>
|
||||
<p><strong>The {{ $site }} Team</strong></p>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@@ -1,15 +1,31 @@
|
||||
@extends('emails.email_layout')
|
||||
|
||||
@section('title')
|
||||
You have received an invite
|
||||
You've Been Invited!
|
||||
@endsection
|
||||
|
||||
@section('site_name', $site)
|
||||
|
||||
@section('content')
|
||||
Dear {{ $email }},
|
||||
<br>
|
||||
you have received an invite from {{ $username }} to register on {{ $site }}
|
||||
<br>
|
||||
To register click on following link: <a href="{{$invite}}">{{$invite}}</a><br>
|
||||
<br><br><br>
|
||||
Greetings from {{ $site }}
|
||||
<p class="greeting">Hello {{ $email }},</p>
|
||||
|
||||
<p>Great news! <strong>{{ $username }}</strong> has invited you to join <strong>{{ $site }}</strong>.</p>
|
||||
|
||||
<div style="text-align: center;">
|
||||
<a href="{{ $invite }}" class="button">Accept Invitation</a>
|
||||
</div>
|
||||
|
||||
<p>Or copy and paste this link into your browser:</p>
|
||||
<span class="link-text">{{ $invite }}</span>
|
||||
|
||||
<div class="info-box">
|
||||
<strong>💡 What's Next?</strong> Click the button above to create your account and start exploring everything {{ $site }} has to offer.
|
||||
</div>
|
||||
|
||||
<p>If you have any questions, feel free to reach out to us after registering.</p>
|
||||
|
||||
<div class="signature">
|
||||
<p>Best regards,</p>
|
||||
<p><strong>The {{ $site }} Team</strong></p>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@@ -4,10 +4,21 @@
|
||||
Welcome to {{ $site }}
|
||||
@endsection
|
||||
|
||||
@section('site_name', $site)
|
||||
|
||||
@section('content')
|
||||
Dear {{ $username }},
|
||||
<br>
|
||||
Welcome to our site. Your account verification will be sent in separate email.
|
||||
<br><br><br>
|
||||
Greetings from {{ $site }}
|
||||
<p class="greeting">Dear {{ $username }},</p>
|
||||
|
||||
<p>Welcome to <strong>{{ $site }}</strong>! We're thrilled to have you join our community.</p>
|
||||
|
||||
<div class="info-box">
|
||||
<strong>📧 Next Step:</strong> Your account verification email will be sent separately. Please check your inbox and verify your email address to complete the registration process.
|
||||
</div>
|
||||
|
||||
<p>If you have any questions or need assistance, don't hesitate to reach out to us.</p>
|
||||
|
||||
<div class="signature">
|
||||
<p>Best regards,</p>
|
||||
<p><strong>The {{ $site }} Team</strong></p>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
Reference in New Issue
Block a user