diff --git a/.env.example b/.env.example
index 99429b48..d8e546b7 100644
--- a/.env.example
+++ b/.env.example
@@ -42,6 +42,17 @@ MAIL_ENCRYPTION=
MAIL_FROM_ADDRESS="${MAIL_USERNAME}"
MAIL_FROM_NAME="${MAIL_USERNAME}"
+POSTMARK_TOKEN=
+
+MAILGUN_DOMAIN=
+MAILGUN_SECRET=
+MAILGUN_ENDPOINT=
+
+AWS_ACCESS_KEY_ID=
+AWS_SECRET_ACCESS_KEY=
+AWS_DEFAULT_REGION=
+AWS_SESSION_TOKEN=
+
S3_ACCESS_KEY_ID=
S3_SECRET_ACCESS_KEY=
S3_DEFAULT_REGION=
diff --git a/config/services.php b/config/services.php
index 4770d169..0743cce4 100644
--- a/config/services.php
+++ b/config/services.php
@@ -24,14 +24,10 @@ return [
],
'ses' => [
- 'key' => env('S3_ACCESS_KEY_ID'),
- 'secret' => env('S3_SECRET_ACCESS_KEY'),
- 'region' => env('S3_DEFAULT_REGION', 'us-east-1'),
- ],
-
- 'passport' => [
- 'client_id' => env('PASSPORT_CLIENT_ID'),
- 'client_secret' => env('PASSPORT_CLIENT_SECRET'),
+ 'key' => env('AWS_ACCESS_KEY_ID'),
+ 'secret' => env('AWS_SECRET_ACCESS_KEY'),
+ 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
+ 'token' => env('AWS_SESSION_TOKEN'),
],
'google' => [
diff --git a/resources/js/views/SetupWizard/EnvironmentSetup.vue b/resources/js/views/SetupWizard/EnvironmentSetup.vue
index 5ea436b5..4b4799d6 100644
--- a/resources/js/views/SetupWizard/EnvironmentSetup.vue
+++ b/resources/js/views/SetupWizard/EnvironmentSetup.vue
@@ -55,40 +55,96 @@
Email Setup
-
-
+
+
-
-
-
-
-
+
+
+
+
+
+
+
@@ -99,378 +155,396 @@
diff --git a/src/Domain/SetupWizard/Controllers/StoreEnvironmentSettingsController.php b/src/Domain/SetupWizard/Controllers/StoreEnvironmentSettingsController.php
index e78d2ead..32e9faef 100644
--- a/src/Domain/SetupWizard/Controllers/StoreEnvironmentSettingsController.php
+++ b/src/Domain/SetupWizard/Controllers/StoreEnvironmentSettingsController.php
@@ -1,4 +1,5 @@
runningUnitTests()) {
+ ): Response
+ {
+ if (!app()->runningUnitTests()) {
$drivers = [
'local' => [
'FILESYSTEM_DRIVER' => 'local',
],
- 's3' => [
- 'FILESYSTEM_DRIVER' => 's3',
- 'S3_ACCESS_KEY_ID' => $request->input('storage.key') ?? null,
- 'S3_SECRET_ACCESS_KEY' => $request->input('storage.secret') ?? null,
- 'S3_DEFAULT_REGION' => $request->input('storage.region') ?? null,
- 'S3_BUCKET' => $request->input('storage.bucket') ?? null,
- 'S3_URL' => $request->input('storage.endpoint') ?? null,
+ 's3' => [
+ 'FILESYSTEM_DRIVER' => 's3',
+ 'S3_ACCESS_KEY_ID' => $request->input('storage.key') ?? null,
+ 'S3_SECRET_ACCESS_KEY' => $request->input('storage.secret') ?? null,
+ 'S3_DEFAULT_REGION' => $request->input('storage.region') ?? null,
+ 'S3_BUCKET' => $request->input('storage.bucket') ?? null,
+ 'S3_URL' => $request->input('storage.endpoint') ?? null,
],
];
@@ -37,15 +39,40 @@ class StoreEnvironmentSettingsController extends Controller
$drivers[$driver]
);
+ $mail = [
+ 'log' => [
+ 'MAIL_DRIVER' => 'log',
+ ],
+ 'postmark' => [
+ 'POSTMARK_TOKEN' => $request->input('postmark.token'),
+ ],
+ 'smtp' => [
+ 'MAIL_DRIVER' => 'smtp',
+ 'MAIL_HOST' => $request->input('mail.host'),
+ 'MAIL_PORT' => $request->input('mail.port'),
+ 'MAIL_USERNAME' => $request->input('mail.username'),
+ 'MAIL_PASSWORD' => $request->input('mail.password'),
+ 'MAIL_ENCRYPTION' => $request->input('mail.encryption'),
+ ],
+ 'ses' => [
+ 'MAIL_DRIVER' => 'ses',
+ 'AWS_ACCESS_KEY_ID' => $request->input('ses.access_key'),
+ 'AWS_SECRET_ACCESS_KEY' => $request->input('ses.secret_access_key'),
+ 'AWS_DEFAULT_REGION' => $request->input('ses.default_region'),
+ 'AWS_SESSION_TOKEN' => $request->input('ses.session_token'),
+ ],
+ 'mailgun' => [
+ 'MAIL_DRIVER' => 'mailgun',
+ 'MAILGUN_DOMAIN' => $request->input('mailgun.domain'),
+ 'MAILGUN_SECRET' => $request->input('mailgun.secret'),
+ 'MAILGUN_ENDPOINT' => $request->input('mailgun.endpoint'),
+
+ ],
+ ];
+
// Store credentials for mail
- // TODO: add options for mailgun
setEnvironmentValue([
- 'MAIL_DRIVER' => $request->input('mail.driver'),
- 'MAIL_HOST' => $request->input('mail.host'),
- 'MAIL_PORT' => $request->input('mail.port'),
- 'MAIL_USERNAME' => $request->input('mail.username'),
- 'MAIL_PASSWORD' => $request->input('mail.password'),
- 'MAIL_ENCRYPTION' => $request->input('mail.encryption'),
+ $mail[$request->input('mail.driver')]
]);
Artisan::call('config:cache');
diff --git a/src/Domain/SetupWizard/Requests/StoreEnvironmentSetupRequest.php b/src/Domain/SetupWizard/Requests/StoreEnvironmentSetupRequest.php
index 67095718..35457e3a 100644
--- a/src/Domain/SetupWizard/Requests/StoreEnvironmentSetupRequest.php
+++ b/src/Domain/SetupWizard/Requests/StoreEnvironmentSetupRequest.php
@@ -1,4 +1,5 @@
'sometimes|nullable|string',
'storage.region' => 'sometimes|nullable|string',
'storage.bucket' => 'sometimes|nullable|string',
- 'mail' => 'required|array',
- 'mail.driver' => 'required|string',
- 'mail.host' => 'required|string',
- 'mail.port' => 'required|string',
- 'mail.username' => 'required|string',
- 'mail.password' => 'required|string',
- 'mail.encryption' => 'required|string',
+ 'mailDriver' => 'required|string',
+ 'mail' => 'sometimes|array',
+ 'ses' => 'sometimes|array',
+ 'mailgun' => 'sometimes|array',
];
}
}