Symfony Mailer Example
It is quite often a common practice now to see many websites with a contact form that will send the message to the recipient via email. What is not always clear is how to achieve this. My intent here is to demonstrate how to send email messages using the Symfony mailer component without using the Symfony framework. To keep things simple the PHP code will be run via the command line and use SMTP (simple mail transfer protocol) for the mail transport. I will not be covering how to create the HTML form, how to capture errors/exceptions, but rather focus on the just the act of sending an email message using PHP.
The following must be installed on the system prior to development.
- Composer v2.4.4
- PHP v8.0.0
Clone the project locally.
Choose one of the following methods.
$ git clone https://git.nixnet.services/adamsdesk/symfony-mailer-example.git
$ git clone firstname.lastname@example.org:adamsdesk/symfony-mailer-example.git
Install all dependencies.
$ composer install
Create configuration file.
This configuration file is used by Symfony mailer to authenticate to the email server in order to send an email message. It is best practice to store this information separately to help avoid people stealing it.
$ nano .env
MAILER_PWD="enter-password" MAILER_PREFIX="smtp://email@example.com:" MAILER_SUFFIX="@mail.example.com:465"
Note: Enclose the variables in double quotes to avoid the value being truncated
Note: TLS (SSL) peer verification is done by default. This can be disabled by adding "?verify_peer=0" to the end of
MAILER_SUFFIX(e.g. MAILER_SUFFIX="@mail.example.com:465?verify_peer=0"), though this is not advisable.
Run The Code
At this stage the code is ready. A successful run will return the prompt and no message will be displayed in the terminal. Check your email inbox for the sent email message.
$ php mailer.php
The copyright license (LICENSE) is only referring to the source code.