symfony-mailer-example/README.md

62 lines
2.2 KiB
Markdown
Raw Normal View History

2022-12-04 06:00:23 +00:00
# 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
2022-12-04 06:10:13 +00:00
1. Clone the project locally.
2022-12-04 06:00:23 +00:00
2022-12-04 06:11:14 +00:00
Choose one of the following methods.
2022-12-04 06:00:23 +00:00
```console
$ git clone https://git.nixnet.services/adamsdesk/symfony-mailer-example.git
```
2022-12-04 06:11:14 +00:00
```console
$ git clone git@git.nixnet.services:adamsdesk/symfony-mailer-example.git
```
2022-12-04 06:00:23 +00:00
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.