This package provides a simple way to send mass mailings using the kaystrobach/fluidemail package.
composer require fucodo/massmailerTo send a mass mailing, you need to create a YAML configuration file and run the following command:
./flow mailing:sendmassmailing --configuration-file path/to/your-config.yamlYou can also filter and display data from your configuration file:
./flow mailing:filterdata --configuration-file path/to/your-config.yaml --domain example.comThe following is an example of a configuration file (your-config.yaml):
config:
senderCommand: |-
./flow mailing:sendmassmailing mailer.config.yaml
templateFile: "MailerTemplateFile.html"
signature: |-
Best regards,
John Doe
Example Company Inc.
Main Street 123
12345 Springfield
Phone: +1 555 123456
E-Mail: john.doe@example.com
Web: www.example.com
PGP Fingerprint: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
Managing Director: Jane Doe
Registry Office: Springfield
Tax ID: 123/456/78901
VAT ID: US 123 456 789
defaultData:
subject: 'System Upgrade {defaultData.system.version}'
returnPath: 'noreply@example.com'
replyTo: 'support@example.com'
color: '3498db'
logo:
alt: Example Company Logo
inline: data:image/svg+xml;base64,...(base64 encoded SVG)...
system:
version: '2.0'
content:
- type: Text
arguments:
text: Hello {recipient.name},
- type: Text
arguments:
- your instance website ({recipient.data.website}) has been updated.
- type: Text
arguments:
- 'The currently installed version:'
- type: TextCenterCode
arguments:
- '{defaultData.system.version}'
- type: Button
arguments:
- Release Notes
- https://example.com/release-{defaultData.system.version}/
- type: Text
arguments:
- 'PS: This email was automatically generated. If you have any questions, please contact our support.'
- type: TextPre
arguments:
- '{signature}'
recipients:
#------------------------------------------------------------------------------------------
# Test recipients
-
name: "John Doe"
email: "john.doe@example.com"
data:
cc:
- jane.doe@example.com
website: 'https://example.com'
#------------------------------------------------------------------------------------------
# Customer recipients
-
name: "Customer One"
email: "customer.one@example.org"
data:
cc:
- support@example.org
orderId: A001-2025
website: 'https://customer-one.example.org'You can use placeholders in your configuration:
{recipient.name}: Name of the recipient.{recipient.mail}: Email address of the recipient.{recipient.data.key}: Custom data provided for each recipient.{defaultData.key}: Global data defined in theconfig.defaultDatasection.{signature}: The signature defined inconfig.signature.