diff --git a/api/app/Http/Requests/Workspace/EmailSettingsRequest.php b/api/app/Http/Requests/Workspace/EmailSettingsRequest.php
index 04030bc3..ca0c2e61 100644
--- a/api/app/Http/Requests/Workspace/EmailSettingsRequest.php
+++ b/api/app/Http/Requests/Workspace/EmailSettingsRequest.php
@@ -22,29 +22,33 @@ class EmailSettingsRequest extends FormRequest
*/
public function rules()
{
- $allFieldsPresent = $this->filled(['host', 'port', 'username', 'password']);
+ $allFieldsPresent = $this->filled(['host', 'port', 'username', 'password', 'sender_address']);
return [
'host' => [
$allFieldsPresent ? 'required' : 'nullable',
- 'required_with:port,username,password',
+ 'required_with:port,username,password,sender_address',
'string',
],
'port' => [
$allFieldsPresent ? 'required' : 'nullable',
- 'required_with:host,username,password',
+ 'required_with:host,username,password,sender_address',
'integer',
],
'username' => [
$allFieldsPresent ? 'required' : 'nullable',
- 'required_with:host,port,password',
+ 'required_with:host,port,password,sender_address',
'string',
],
'password' => [
$allFieldsPresent ? 'required' : 'nullable',
- 'required_with:host,port,username',
+ 'required_with:host,port,username,sender_address',
'string',
],
+ 'sender_address' => [
+ 'nullable',
+ 'email',
+ ],
];
}
diff --git a/api/app/Notifications/Forms/FormEmailNotification.php b/api/app/Notifications/Forms/FormEmailNotification.php
index 8d37082b..ed0ad3e5 100644
--- a/api/app/Notifications/Forms/FormEmailNotification.php
+++ b/api/app/Notifications/Forms/FormEmailNotification.php
@@ -98,6 +98,17 @@ class FormEmailNotification extends Notification
private function getFromEmail(): string
{
+ $workspace = $this->event->form->workspace;
+ $emailSettings = $workspace->settings['email_settings'] ?? [];
+
+ if (
+ $workspace->is_pro
+ && $emailSettings
+ && !empty($emailSettings['sender_address'])
+ ) {
+ return $emailSettings['sender_address'];
+ }
+
if (
config('app.self_hosted')
&& isset($this->integrationData->sender_email)
diff --git a/client/components/pages/settings/WorkSpaceEmailSettings.vue b/client/components/pages/settings/WorkSpaceEmailSettings.vue
index 88dbd15c..08bccb37 100644
--- a/client/components/pages/settings/WorkSpaceEmailSettings.vue
+++ b/client/components/pages/settings/WorkSpaceEmailSettings.vue
@@ -71,6 +71,13 @@
label="Password"
placeholder="Password"
/>
+