Enhance email settings functionality by adding sender address support (#668)
Co-authored-by: Julien Nahum <julien@nahum.net>
This commit is contained in:
parent
a91c194161
commit
4fae4e6328
|
|
@ -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',
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -71,6 +71,13 @@
|
|||
label="Password"
|
||||
placeholder="Password"
|
||||
/>
|
||||
<TextInput
|
||||
:form="emailSettingsForm"
|
||||
name="sender_address"
|
||||
:disabled="!workspace.is_pro"
|
||||
label="Sender address"
|
||||
placeholder="sender@example.com"
|
||||
/>
|
||||
|
||||
<div class="flex justify-between gap-2">
|
||||
<UButton
|
||||
|
|
@ -115,7 +122,8 @@ const emailSettingsForm = useForm({
|
|||
host: '',
|
||||
port: '',
|
||||
username: '',
|
||||
password: ''
|
||||
password: '',
|
||||
sender_address: ''
|
||||
})
|
||||
const emailSettingsLoading = ref(false)
|
||||
const showEmailSettingsModal = ref(false)
|
||||
|
|
@ -148,6 +156,7 @@ const saveChanges = () => {
|
|||
port: emailSettingsForm?.port,
|
||||
username: emailSettingsForm?.username,
|
||||
password: emailSettingsForm?.password,
|
||||
sender_address: emailSettingsForm?.sender_address,
|
||||
},
|
||||
})
|
||||
.then((data) => {
|
||||
|
|
@ -171,5 +180,6 @@ const initEmailSettings = () => {
|
|||
emailSettingsForm.port = emailSettings?.port
|
||||
emailSettingsForm.username = emailSettings?.username
|
||||
emailSettingsForm.password = emailSettings?.password
|
||||
emailSettingsForm.sender_address = emailSettings?.sender_address
|
||||
}
|
||||
</script>
|
||||
|
|
|
|||
Loading…
Reference in New Issue