58 lines
2.0 KiB
Markdown
58 lines
2.0 KiB
Markdown
# 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.
|
|
|
|
## System Requirements
|
|
|
|
The following must be installed on the system prior to development.
|
|
|
|
- Composer v2.4.4
|
|
- PHP v8.0.0
|
|
|
|
## Development Setup
|
|
|
|
1. Clone project the project locally.
|
|
|
|
```console
|
|
$ git clone https://git.nixnet.services/adamsdesk/symfony-mailer-example.git
|
|
```
|
|
1. Install all dependencies.
|
|
```console
|
|
$ composer install
|
|
```
|
|
1. 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.
|
|
|
|
```console
|
|
$ nano .env
|
|
```
|
|
```
|
|
MAILER_PWD="enter-password"
|
|
MAILER_PREFIX="smtp://username@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.
|
|
|
|
```console
|
|
$ php mailer.php
|
|
```
|
|
|
|
## Copyright License
|
|
|
|
The copyright license (LICENSE) is only referring to the source code.
|