Skip to content

Package: templates-email

Generated from api/packages/templates-email

Source: api/packages/templates-email · imported version 0.1.69. The sections after the README are extracted from the code on every docs build.

Package for email notifications with editable templates (for important user-related events)

This package allows you to create email notifications for events emitted in Laravel app.

Each notification is created as a class describing available variables that can be used in Template (which will be created in database and editable through admin panel). This class must be registered using Template facade from Template package, where you specify which Event it is associated with and which Channel it is sent through (e.g. Email channel when defined in this package).

  • composer require ulams/templates-email
  • php artisan db:migrate
  • php artisan db:seed --class="Ulams\TemplatesEmail\Database\Seeders\TemplatesEmailSeeder"
  1. Create event which triggers sending email using specified template. This event must implement method getUser() returning User model from LMS Core package.
  2. Create Class defining template variables, which you will use in email notification,
  3. Associate your class describing template variables with event and channel through which notifications should be sent. Use Ulams\Templates\Facades\Template::register(Event class, Ulams\TemplatesEmail\Core\EmailChannel::class, Variable class);
  4. Register template in db for admin panel or used /api/admin/templates, better described in Template package
  1. Emails are written using MJML, which then is prerendered into HTML when saving a Template (so that sending an email does not call renderer for each message).
  2. To render MJML you need to either:
    • install mjml npm package and configure path to executable binary in this package config binary_path key
    • register to MJML API and configure api id & secret in this package config file

Run ./vendor/bin/phpunit --filter 'Ulams\\TemplatesEmail\\Tests' to run tests. See tests folder as it contains a basic implementation of Variable (or Template description) class with minimal customisation - a quite good starting point for creating your own.

Test details codecov Tests PHPUnit in environments

No Permissions defined for this package.

None.

None.

Registered with AdministrableConfig::registerConfig (editable in the admin panel under Configuration → Settings).

Key Rules Public Read-only
ulams_templates_email.mjml.use_api required, bool no
ulams_templates_email.mjml.api_id required, string no
ulams_templates_email.mjml.api_secret required, string no
ulams_templates_email.mjml.default_template required, string, new MjmlRule() no

None.

Event Channel Variables
AssignToProduct Email AssignToProductVariables
AssignToProductable Email AssignToProductableVariables
UnassignProduct Email UnassignProductVariables
UnassignProductable Email UnassignProductableVariables
AccountMustBeEnableByAdmin Email VerifyUserAccountVariables
AccountConfirmed Email AccountConfirmedVariables
UserAddedToGroup Email UserAddedToGroupVariables
UserRemovedFromGroup Email UserRemovedFromGroupVariables
PasswordChanged Email PasswordChangedVariables
AccountMustBeEnableByAdmin Email VerifyUserAccountVariables
ForgotPassword Email ResetPasswordVariables
AccountRegistered Email VerifyEmailVariables
AccountDeleted Email AccountDeletedVariables
AccountBlocked Email AccountBlockedVariables
AccountDeletionRequested Email AccountDeletionRequestedVariables
ProductAttached Email ProductAttachedVariables
OrderCreated Email OrderCreatedVariables
ConsultationAccessEnquiryAdminCreatedEvent Email ConsultationAccessEnquiryAdminCreatedVariables
ConsultationAccessEnquiryDisapprovedEvent Email ConsultationAccessEnquiryDisapprovedVariables
ConsultationAccessEnquiryApprovedEvent Email ConsultationAccessEnquiryApprovedVariables
ApprovedTermWithTrainer Email ApprovedTermWithTrainerVariables
ApprovedTerm Email ApprovedTermVariables
RejectTermWithTrainer Email RejectTermWithTrainerVariables
RejectTerm Email RejectTermVariables
ReportTerm Email ReportTermVariables
ReminderAboutTerm Email ReminderAboutTermVariables
ReminderTrainerAboutTerm Email ReminderTrainerAboutTermVariables
ChangeTerm Email ChangeTermVariables
CourseAccessEnquiryAdminCreatedEvent Email CourseAccessEnquiryAdminCreatedVariables
CourseDeadlineSoon Email DeadlineIncomingVariables
CourseFinished Email UserFinishedCourseVariables
CourseAssigned Email UserAssignedToCourseVariables
CourseUnassigned Email UserUnassignedFromCourseVariables
CoursedPublished Email PublishedCourseVariables
CourseStarted Email StartedCourseVariables
CourseAccessStarted Email AccessStartedCourseVariables
CourseAccessFinished Email AccessFinishedCourseVariables
TopicFinished Email TopicFinishedCourseVariables
UlamsImportedNewUserTemplateEvent Email ImportedNewUserVariables
UpdateProposalReady Email UpdateProposalReadyVariables
SourceCheckFailing Email SourceCheckFailingVariables
CourseContentUpdated Email CourseContentUpdatedVariables
PaymentRegistered Email PaymentRegisteredVariables
PaymentFailed Email PaymentFailedVariables
PaymentSuccess Email PaymentSuccessVariables
PaymentCancelled Email PaymentCanceledVariables
TaskAssignedEvent Email TaskAssignedVariables
TaskCompleteUserConfirmationEvent Email TaskCompleteUserConfirmationVariables
TaskCompleteRequestEvent Email TaskCompleteRequestVariables
TaskOverdueEvent Email TaskOverdueVariables
TaskIncompleteEvent Email TaskIncompleteVariables
TaskNoteCreatedEvent Email TaskNoteCreatedVariables
ManuallyTriggeredEvent Email UserVariables
ProjectSolutionCreatedEvent Email ProjectSolutionCreatedVariables
TopicTypeChanged Email TopicTypeChangedVariables
ProcessVideoStarted Email VideoProcessStartedVariables
ProcessVideoFailed Email VideoProcessFailedVariables
ProcessVideoFinished Email VideoProcessFinishedVariables
ProcessVideoState Email VideoProcessStateVariables
ReminderAboutTerm Email ReminderAboutTermVariables
WebinarTrainerAssigned Email WebinarTrainerAssignedVariables
WebinarTrainerUnassigned Email WebinarTrainerUnassignedVariables
YtProblem Email YtProblemVariables

None.

None.

MJML_API_ID, MJML_API_SECRET, MJML_API_URL, MJML_BINARY_PATH, MJML_USE_API