diff --git a/app/Http/Controllers/SmtpController.php b/app/Http/Controllers/SmtpController.php index b28275e62fff..bf03012f017b 100644 --- a/app/Http/Controllers/SmtpController.php +++ b/app/Http/Controllers/SmtpController.php @@ -30,16 +30,24 @@ class SmtpController extends BaseController $user = auth()->user(); $company = $user->company(); + $smtp_host = $request->input('smtp_host', $company->smtp_host); + $smtp_port = $request->input('smtp_port', $company->smtp_port); + $smtp_username = $request->input('smtp_username', $company->smtp_username); + $smtp_password = $request->input('smtp_password', $company->smtp_password); + $smtp_encryption = $request->input('smtp_encryption', $company->smtp_encryption ?? 'tls'); + $smtp_local_domain = $request->input('smtp_local_domain', strlen($company->smtp_local_domain) > 2 ? $company->smtp_local_domain : null); + $smtp_verify_peer = $request->input('verify_peer', $company->smtp_verify_peer ?? true); + config([ 'mail.mailers.smtp' => [ 'transport' => 'smtp', - 'host' => $request->input('smtp_host', $company->smtp_host), - 'port' => $request->input('smtp_port', $company->smtp_port), - 'username' => $request->input('smtp_username', $company->smtp_username), - 'password' => $request->input('smtp_password', $company->smtp_password), - 'encryption' => $request->input('smtp_encryption', $company->smtp_encryption ?? 'tls'), - 'local_domain' => $request->input('smtp_local_domain', strlen($company->smtp_local_domain) > 2 ? $company->smtp_local_domain : null), - 'verify_peer' => $request->input('verify_peer', $company->smtp_verify_peer ?? true), + 'host' => $smtp_host, + 'port' => $smtp_port, + 'username' => $smtp_username, + 'password' => $smtp_password, + 'encryption' => $smtp_encryption, + 'local_domain' => $smtp_local_domain, + 'verify_peer' => $smtp_verify_peer, 'timeout' => 5, ], ]); diff --git a/app/Http/Requests/Smtp/CheckSmtpRequest.php b/app/Http/Requests/Smtp/CheckSmtpRequest.php index d4a4c22914af..186a68271425 100644 --- a/app/Http/Requests/Smtp/CheckSmtpRequest.php +++ b/app/Http/Requests/Smtp/CheckSmtpRequest.php @@ -36,18 +36,46 @@ class CheckSmtpRequest extends Request public function rules() { return [ + 'smtp_host' => 'sometimes|nullable|string|min:3', + 'smtp_port' => 'sometimes|nullable|integer', + 'smtp_username' => 'sometimes|nullable|string|min:3', + 'smtp_password' => 'sometimes|nullable|string|min:3', ]; } public function prepareForValidation() { + + /** @var \App\Models\User $user */ + $user = auth()->user(); + $company = $user->company(); + $input = $this->input(); - if(isset($input['smtp_username']) && $input['smtp_username'] == '********') - unset($input['smtp_username']); + if(isset($input['smtp_username']) && $input['smtp_username'] == '********'){ + // unset($input['smtp_username']); + $input['smtp_username'] = $company->smtp_username; + } + + if(isset($input['smtp_password'])&& $input['smtp_password'] == '********'){ + // unset($input['smtp_password']); + $input['smtp_password'] = $company->smtp_password; + } + + if(isset($input['smtp_host']) && strlen($input['smtp_host']) >=3){ + + } + else { + $input['smtp_host'] = $company->smtp_host; + } + + + if(isset($input['smtp_port']) && strlen($input['smtp_port']) >= 3) { + + } else { + $input['smtp_port'] = $company->smtp_port; + } - if(isset($input['smtp_password'])&& $input['smtp_password'] == '********') - unset($input['smtp_password']); $this->replace($input); }