Skip to content

Commit adb5cf7

Browse files
authored
Merge pull request #3 from warcooft/feat-add-env
feat: add mail config in .env file
2 parents 1df6fed + a537002 commit adb5cf7

2 files changed

Lines changed: 37 additions & 8 deletions

File tree

README.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
# CodeIgniter Multiple SMTP Configuration
2+
23
A lightweight Multi-SMTP configuration helper for your CodeIgniter 4 application. This package allows you to use different email accounts simultaneously.
34

45
![CodeIgniter](https://img.shields.io/badge/CodeIgniter-%5E4.8-blue)
@@ -18,6 +19,34 @@ php spark smtpconfig:publish
1819

1920
After that, check the `app/Config/MultiEmail.php` file, and set it up with your email credentials.
2021

22+
## Configuring SMTP in the `.env` File
23+
24+
We recommend setting the configuration for each SMTP email in the `.env` file instead of using `app/Config/MultiEmail`.
25+
26+
For example, you can proceed as follows:
27+
28+
```
29+
#--------------------------------------------------------------------
30+
# MULTI-SMTP CONFIGURATION SETTINGS
31+
#--------------------------------------------------------------------
32+
33+
# email.default.fromName =
34+
# email.default.fromEmail =
35+
# email.default.protocol = smtp
36+
# email.default.SMTPUser =
37+
# email.default.SMTPPass =
38+
# email.default.SMTPHost = smtp.gmail.com
39+
# email.default.SMTPPort = 587
40+
41+
# email.outlook.fromName =
42+
# email.outlook.fromEmail =
43+
# email.outlook.protocol = smtp
44+
# email.outlook.SMTPUser =
45+
# email.outlook.SMTPPass =
46+
# email.outlook.SMTPHost = smtp.office365.com
47+
# email.outlook.SMTPPort = 587
48+
```
49+
2150
## Usage
2251

2352
```php

src/Helpers/multi_email_helper.php

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,18 +27,18 @@ function multi_email(array $overrides = [], string $group = ''): Email
2727
throw new Exception("Cannot send email from 'multi_email' helper.\n Undefined group name: $group");
2828
}
2929

30-
$defaultGroup = !empty($group) ? $group : setting('MultiEmail.defaultGroup');
30+
$defaultGroup = !empty($group) ? strtolower($group) : setting('MultiEmail.defaultGroup');
3131

3232
$config = [
33-
'fromEmail' => setting('MultiEmail.' . $defaultGroup)['fromEmail'],
34-
'fromName' => setting('MultiEmail.' . $defaultGroup)['fromName'],
33+
'fromEmail' => env("email.$defaultGroup.fromEmail", setting('MultiEmail.' . $defaultGroup)['fromEmail']),
34+
'fromName' => env("email.$defaultGroup.fromName", setting('MultiEmail.' . $defaultGroup)['fromName']),
3535
'userAgent' => setting('MultiEmail.' . $defaultGroup)['userAgent'],
36-
'protocol' => setting('MultiEmail.' . $defaultGroup)['protocol'],
36+
'protocol' => env("email.$defaultGroup.protocol", setting('MultiEmail.' . $defaultGroup)['protocol']),
3737
'mailPath' => setting('MultiEmail.' . $defaultGroup)['mailPath'],
38-
'SMTPHost' => setting('MultiEmail.' . $defaultGroup)['SMTPHost'],
39-
'SMTPUser' => setting('MultiEmail.' . $defaultGroup)['SMTPUser'],
40-
'SMTPPass' => setting('MultiEmail.' . $defaultGroup)['SMTPPass'],
41-
'SMTPPort' => setting('MultiEmail.' . $defaultGroup)['SMTPPort'],
38+
'SMTPHost' => env("email.$defaultGroup.SMTPHost", setting('MultiEmail.' . $defaultGroup)['SMTPHost']),
39+
'SMTPUser' => env("email.$defaultGroup.SMTPUser", setting('MultiEmail.' . $defaultGroup)['SMTPUser']),
40+
'SMTPPass' => env("email.$defaultGroup.SMTPPass", setting('MultiEmail.' . $defaultGroup)['SMTPPass']),
41+
'SMTPPort' => (int) env("email.$defaultGroup.SMTPPort", setting('MultiEmail.' . $defaultGroup)['SMTPPort']),
4242
'SMTPTimeout' => setting('MultiEmail.' . $defaultGroup)['SMTPTimeout'],
4343
'SMTPKeepAlive' => setting('MultiEmail.' . $defaultGroup)['SMTPKeepAlive'],
4444
'SMTPCrypto' => setting('MultiEmail.' . $defaultGroup)['SMTPCrypto'],

0 commit comments

Comments
 (0)