TASKS 16: Email Notifications - RadLeoOFC/laravel-admin-panel GitHub Wiki
Project Report: Email Notifications and Membership Expiration Reminders
Objective
The objective of this task was to implement automated email notifications for users for events like membership creation, desk booking confirmation, or membership expiration. Additionally, a scheduled Artisan command was required to check for memberships ending soon and send reminder emails automatically.
1. Configuring Mail
Steps Taken:
- Updated the
.envfile with Mailtrap SMTP credentials. - Ensured that the
MAIL_FROM_ADDRESSwas set correctly.
Screenshot: Mailtrap SMTP Configuration

2. Creating the Mailable Class
Steps Taken:
- Created the
MembershipCreatedMailable class using:
php artisan make:mail MembershipCreated
- Defined the email subject and template.
Screenshot: MembershipCreated.php Class

3. Sending Email on Membership Creation
Steps Taken:
-
Updated the
MembershipController@storemethod to send an email after successfully saving a membership. -
Used:
Mail::to($membership->user->email)->send(new MembershipCreated($membership));
Screenshot: MembershipController.php

Screenshot: Membership creation message

4. Implementing Membership Expiration Reminders
Steps Taken:
- Created a new Artisan command:
php artisan make:command SendMembershipExpirationReminder
- Implemented logic to fetch memberships expiring in 3 days and send emails.
- Registered the command in the scheduler.
Screenshot: SendMembershipExpirationReminder.php

Screenshot: Membership expiration reminder was sent

5. Resolving Timezone Issues
Steps Taken:
- Changed the application timezone to
Europe/Kyivinconfig/app.php. - Cleared and cached the configuration:
php artisan config:clear
php artisan cache:clear
php artisan config:cache
- Verified timezone alignment between Laravel and MySQL.
Screenshot: Laravel Timezone in Tinker

Screenshot: MySQL Timezone Check

6. Pushing the Project to GitHub
Steps Taken:
- Checked the repository status:
git status
- Committed changes:
git add .
git commit -m "Implemented email notifications and membership expiration reminders"
- Switched to the
developbranch:
git checkout develop
- Pushed changes to GitHub:
git push origin develop
Screenshot: Git Push Output

Conclusion
- Successfully implemented email notifications for membership creation and expiration reminders.
- Resolved timezone discrepancies between Laravel and MySQL.
- Pushed the project to GitHub in the
developbranch.