';
227 |
228 | echo '';
229 | echo '';
230 | echo __('Email', 'oauthimap');
231 | echo ' | ';
232 | echo '';
233 | echo Html::input(
234 | 'email',
235 | [
236 | 'disabled' => 'disabled',
237 | 'value' => $user,
238 | ],
239 | );
240 | echo ' | ';
241 | echo '
';
242 |
243 | echo '';
244 | echo '';
245 | echo __('Server host', 'oauthimap');
246 | echo ' | ';
247 | echo '';
248 | echo Html::input(
249 | 'host',
250 | [
251 | 'value' => $host,
252 | ],
253 | );
254 | echo ' | ';
255 | echo '';
256 | echo __('Server port', 'oauthimap');
257 | echo ' | ';
258 | echo '';
259 | echo Html::input(
260 | 'port',
261 | [
262 | 'type' => 'integer',
263 | 'min' => 1,
264 | 'value' => $port,
265 | 'size' => 5,
266 | ],
267 | );
268 | echo ' | ';
269 | echo '
';
270 |
271 | echo '';
272 | echo '';
273 | echo __('Security level', 'oauthimap');
274 | echo ' | ';
275 | echo '';
276 | echo Html::select(
277 | 'ssl',
278 | [
279 | '' => '',
280 | 'SSL' => __('SSL', 'oauthimap'),
281 | 'TLS' => __('SSL + TLS', 'oauthimap'),
282 | ],
283 | [
284 | 'selected' => $ssl,
285 | 'class' => 'form-select',
286 | ],
287 | );
288 | echo ' | ';
289 | echo '';
290 | echo __('Timeout', 'oauthimap');
291 | echo ' | ';
292 | echo '';
293 | echo Html::input(
294 | 'timeout',
295 | [
296 | 'type' => 'integer',
297 | 'min' => 1,
298 | 'max' => 30,
299 | 'value' => $timeout,
300 | 'size' => 5,
301 | ],
302 | );
303 | echo ' | ';
304 | echo '
';
305 |
306 | echo '';
307 | echo '';
308 | echo Html::submit(
309 | __('Refresh connection diagnostic', 'oauthimap'),
310 | [
311 | 'name' => 'diagnose',
312 | 'class' => 'btn btn-secondary',
313 | ],
314 | );
315 | echo ' | ';
316 | echo '
';
317 |
318 | echo '';
319 | echo '';
320 | echo ' ';
321 | echo '';
322 | echo __('Diagnostic log contains sensitive information, such as the access token.', 'oauthimap');
323 | echo ' ';
324 | $protocol = new ImapOauthProtocol($application->fields['id']);
325 | $protocol->enableDiagnostic();
326 | $protocol->setTimeout($timeout);
327 | $error = null;
328 | try {
329 | $protocol->connect($host, $port, $ssl);
330 | if ($protocol->login($user, '')) {
331 | new ImapOauthStorage($protocol); // Will automatically send 'select INBOX'.
332 | }
333 | } catch (\Throwable $e) {
334 | $error = $e;
335 | }
336 | echo '';
337 | echo $protocol->getDiagnosticLog();
338 | echo '';
339 | if ($error !== null) {
340 | echo ' ';
341 | echo sprintf(__('Unexpected error: %s', 'oauthimap'), $error->getMessage());
342 | echo ' ';
343 | }
344 | echo ' | ';
345 | echo '
';
346 |
347 | echo '
';
348 | echo '