diff --git a/htdocs/admin/emailcollector_card.php b/htdocs/admin/emailcollector_card.php
index ab4f0c7def0..2a32551eaad 100644
--- a/htdocs/admin/emailcollector_card.php
+++ b/htdocs/admin/emailcollector_card.php
@@ -378,33 +378,54 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
$connectstringserver = $object->getConnectStringIMAP($usessl);
- try {
- if ($sourcedir) {
- //$connectstringsource = $connectstringserver.imap_utf7_encode($sourcedir);
- $connectstringsource = $connectstringserver.$object->getEncodedUtf7($sourcedir);
- }
- if ($targetdir) {
- //$connectstringtarget = $connectstringserver.imap_utf7_encode($targetdir);
- $connectstringtarget = $connectstringserver.$object->getEncodedUtf7($targetdir);
+ if ($action == 'scan') {
+ try {
+ if ($sourcedir) {
+ //$connectstringsource = $connectstringserver.imap_utf7_encode($sourcedir);
+ $connectstringsource = $connectstringserver.$object->getEncodedUtf7($sourcedir);
+ }
+ if ($targetdir) {
+ //$connectstringtarget = $connectstringserver.imap_utf7_encode($targetdir);
+ $connectstringtarget = $connectstringserver.$object->getEncodedUtf7($targetdir);
+ }
+
+ $timeoutconnect = empty($conf->global->MAIN_USE_CONNECT_TIMEOUT) ? 5 : $conf->global->MAIN_USE_CONNECT_TIMEOUT;
+ $timeoutread = empty($conf->global->MAIN_USE_RESPONSE_TIMEOUT) ? 20 : $conf->global->MAIN_USE_RESPONSE_TIMEOUT;
+
+ dol_syslog("imap_open connectstring=".$connectstringsource." login=".$object->login." password=".$object->password." timeoutconnect=".$timeoutconnect." timeoutread=".$timeoutread);
+
+ $result1 = imap_timeout(IMAP_OPENTIMEOUT, $timeoutconnect); // timeout seems ignored with ssl connect
+ $result2 = imap_timeout(IMAP_READTIMEOUT, $timeoutread);
+ $result3 = imap_timeout(IMAP_WRITETIMEOUT, 5);
+ $result4 = imap_timeout(IMAP_CLOSETIMEOUT, 5);
+
+ dol_syslog("result1=".$result1." result2=".$result2." result3=".$result3." result4=".$result4);
+
+ $connection = imap_open($connectstringsource, $object->login, $object->password);
+
+ //dol_syslog("end imap_open connection=".var_export($connection, true));
+ } catch (Exception $e) {
+ print $e->getMessage();
}
- $timeoutconnect = empty($conf->global->MAIN_USE_CONNECT_TIMEOUT) ? 5 : $conf->global->MAIN_USE_CONNECT_TIMEOUT;
- $timeoutread = empty($conf->global->MAIN_USE_RESPONSE_TIMEOUT) ? 20 : $conf->global->MAIN_USE_RESPONSE_TIMEOUT;
+ if (!$connection) {
+ $morehtml .= 'Failed to open IMAP connection '.$connectstringsource;
+ if (function_exists('imap_last_error')) {
+ $morehtml .= '
'.imap_last_error();
+ }
+ dol_syslog("Error ".$morehtml, LOG_WARNING);
+ //var_dump(imap_errors())
+ } else {
+ dol_syslog("Imap connected. Now we call imap_num_msg()");
+ $morehtml .= imap_num_msg($connection);
+ }
- dol_syslog("imap_open connectstring=".$connectstringsource." login=".$object->login." password=".$object->password." timeoutconnect=".$timeoutconnect." timeoutread=".$timeoutread);
-
- $result1 = imap_timeout(IMAP_OPENTIMEOUT, $timeoutconnect); // timeout seems ignored with ssl connect
- $result2 = imap_timeout(IMAP_READTIMEOUT, $timeoutread);
- $result3 = imap_timeout(IMAP_WRITETIMEOUT, 5);
- $result4 = imap_timeout(IMAP_CLOSETIMEOUT, 5);
-
- dol_syslog("result1=".$result1." result2=".$result2." result3=".$result3." result4=".$result4);
-
- $connection = imap_open($connectstringsource, $object->login, $object->password);
-
- //dol_syslog("end imap_open connection=".var_export($connection, true));
- } catch (Exception $e) {
- print $e->getMessage();
+ if ($connection) {
+ dol_syslog("Imap close");
+ imap_close($connection);
+ }
+ } else {
+ $morehtml .= 'id.'&action=scan&token='.newToken().'">'.img_picto('', 'refresh', 'class="paddingrightonly"').$langs->trans("Refresh").'';
}
$morehtml .= $form->textwithpicto('', 'connect string '.$connectstringserver);
@@ -412,23 +433,6 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
$morehtml .= 'IMAP functions not available on your PHP. ';
}
- if (!$connection) {
- $morehtml .= 'Failed to open IMAP connection '.$connectstringsource;
- if (function_exists('imap_last_error')) {
- $morehtml .= '
'.imap_last_error();
- }
- dol_syslog("Error ".$morehtml, LOG_WARNING);
- //var_dump(imap_errors())
- } else {
- dol_syslog("Imap connected. Now we call imap_num_msg()");
- $morehtml .= imap_num_msg($connection);
- }
-
- if ($connection) {
- dol_syslog("Imap close");
- imap_close($connection);
- }
-
dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref.'