'.acym_translation('ACYM_FSOCKOPEN').''; exit; } $tests = [ 25 => 'smtp.sendgrid.com', 2525 => 'smtp.sendgrid.com', 587 => 'smtp.sendgrid.com', 465 => 'ssl://smtp.gmail.com', ]; foreach ($tests as $port => $server) { $fp = @fsockopen($server, $port, $errno, $errstr, 5); if ($fp) { echo ''.acym_translationSprintf('ACYM_SMTP_AVAILABLE_PORT', $port).'
'; fclose($fp); } else { echo ''.acym_translationSprintf('ACYM_SMTP_NOT_AVAILABLE_PORT', $port, $errno.' - '.acym_utf8Encode($errstr)).'
'; } } exit; } public function testCredentialsSendingMethod(): void { $sendingMethod = acym_getVar('string', 'sendingMethod', ''); $config = acym_getVar('array', 'config', []); if (empty($sendingMethod) || empty($config)) acym_sendAjaxResponse(acym_translation('ACYM_COULD_NOT_FIND_SENDING_METHOD'), [], false); acym_trigger('onAcymTestCredentialSendingMethod', [$sendingMethod, $config]); } public function copySettingsSendingMethod(): void { $plugin = acym_getVar('string', 'plugin', ''); $method = acym_getVar('string', 'method', ''); if (empty($plugin) || empty($method)) { acym_sendAjaxResponse(acym_translation('ACYM_COULD_NOT_RETRIEVE_DATA'), [], false); } $data = []; if ($method === 'from_options') { $wpMailSmtpSetting = acym_getCMSConfig('wp_mail_smtp', ''); if (!empty($wpMailSmtpSetting) && !empty($wpMailSmtpSetting['mail'])) { $mailSettings = $wpMailSmtpSetting['mail']; if (!empty($mailSettings['from_email']) && !empty($mailSettings['from_name'])) { $data['from_email'] = $mailSettings['from_email']; $data['from_name'] = $mailSettings['from_name']; } } } else { acym_trigger('onAcymGetSettingsSendingMethodFromPlugin', [&$data, $plugin, $method]); } if (empty($data)) { acym_sendAjaxResponse(acym_translation('ACYM_COULD_NOT_RETRIEVE_DATA'), [], false); } acym_sendAjaxResponse('', $data); } public function synchronizeExistingUsers(): void { $sendingMethod = acym_getVar('string', 'sendingMethod', ''); if (empty($sendingMethod)) { acym_sendAjaxResponse(acym_translation('ACYM_COULD_NOT_FIND_SENDING_METHOD'), [], false); } acym_trigger('onAcymSynchronizeExistingUsers', [$sendingMethod]); } public function downloadExportChangesFile(): void { $current = acym_getVar('boolean', 'export_changes_file_current', true); $dateTime = $current ? 'now' : '1 month ago'; $exportHelper = new ExportHelper(); $filenameToSearch = $exportHelper->getExportChangesFileName(acym_date($dateTime, 'Y'), acym_date($dateTime, 'm'), false); $exportFolder = acym_getLogPath(); $files = scandir($exportFolder); if (empty($files)) { acym_enqueueMessage(acym_translation('ACYM_NO_FILE_TO_EXPORT'), 'info'); $this->listing(); return; } $filename = acym_getLogPath($filenameToSearch); $zipFiles = []; foreach ($files as $file) { if (strpos($file, $filenameToSearch) === false) continue; $zipFiles[] = [ 'name' => $file, 'data' => acym_fileGetContent(acym_getLogPath($file)), ]; } if (empty($zipFiles)) { acym_enqueueMessage(acym_translation('ACYM_NO_FILE_TO_EXPORT'), 'info'); $this->listing(); return; } acym_createArchive($filename, $zipFiles); if (ACYM_CMS === 'wordpress') @ob_get_clean(); $exportHelper->setDownloadHeaders($filenameToSearch, 'zip'); readfile($filename.'.zip'); acym_deleteFile($filename.'.zip'); exit; } public function loginForOAuth2Smtp(): void { $this->loginForOAuth2(); } public function loginForOAuth2Bounce(): void { $this->loginForOAuth2(false); } public function logoutForOAuth2Smtp(): void { acym_trigger('onAcymOauthRevoke'); $this->listing(); } public function logoutForOAuth2Bounce(): void { $this->config->save( [ 'bounce_refresh_token' => '', 'bounce_refresh_token_expiration' => '', ] ); $this->listing(); } }