query_result($adb->pquery($sql, array($server_type)),0,"id"); if($server_type == 'proxy') { $action = 'ProxyServerConfig&proxy_server_mode=edit'; if (!$sock =@fsockopen($server, $port, $errno, $errstr, 30)) { $error_str = 'error=Unable to connect "'.$server.':'.$port.'"'; $db_update = false; }else { $url = "http://www.google.co.in"; $proxy_cont = ''; $sock = fsockopen($server, $port); if (!$sock) {return false;} fputs($sock, "GET $url HTTP/1.0\r\nHost: $server\r\n"); fputs($sock, "Proxy-Authorization: Basic " . base64_encode ("$server_username:$server_password") . "\r\n\r\n"); while(!feof($sock)) {$proxy_cont .= fread($sock,4096);} fclose($sock); $proxy_cont = substr($proxy_cont, strpos($proxy_cont,"\r\n\r\n")+4); if(substr_count($proxy_cont, "Cache Access Denied") > 0) { $error_str = 'error=LBL_PROXY_AUTHENTICATION_REQUIRED'; $db_update = false; } else { $action = 'ProxyServerConfig'; } } } if($server_type == 'ftp_backup') { $action = 'BackupServerConfig&bkp_server_mode=edit&server='.$server.'&server_user='.$server_username.'&password='.$server_password; if(!function_exists('ftp_connect')){ $error_str = 'error=FTP support is not enabled.'; $db_update = false; }else { $conn_id = @ftp_connect($server); if(!$conn_id) { $error_str = 'error=Unable to connect "'.$server.'"'; $db_update = false; }else { if(!@ftp_login($conn_id, $server_username, $server_password)) { $error_str = 'error=Couldn\'t connect to "'.$server.'" as user "'.$server_username.'"'; $db_update = false; } else { $action = 'BackupServerConfig'; } ftp_close($conn_id); } } } if($server_type == 'local_backup') { $action = 'BackupServerConfig&local_server_mode=edit&server_path="'.$server_path.'"'; if(!is_dir($server_path)){ $error_str = 'error1=Folder doesnt Exist or Specified a path which is not a folder'; $db_update = false; }else { if(!is_writable($server_path)) { $error_str = 'error1=Access Denied to write to "'.$server_path.'"'; $db_update = false; }else { $action = 'BackupServerConfig'; } } } if($server_type == 'proxy' || $server_type == 'ftp_backup' || $server_type == 'local_backup') { if($db_update) { if($id=='') { $id = $adb->getUniqueID('vtiger_systems'); $sql="insert into vtiger_systems values(?,?,?,?,?,?,?,?,?)"; $params = array($id, $server, $port, $server_username, $server_password, $server_type, $smtp_auth,$server_path,$from_email_field); } else { $sql="update vtiger_systems set server = ?, server_username = ?, server_password = ?, smtp_auth= ?, server_type = ?, server_port= ?, server_path = ?, from_email_field=? where id = ?"; $params = array($server, $server_username, $server_password, $smtp_auth, $server_type, $port, $server_path,$from_email_field, $id); } $adb->pquery($sql, $params); } } //Added code to send a test mail to the currently logged in user if($server_type != 'ftp_backup' && $server_type != 'proxy' && $server_type != 'local_backup') { require_once("modules/Emails/mail.php"); global $current_user; $to_email = getUserEmailId('id',$current_user->id); $from_email = $to_email; $subject = 'Test mail about the mail server configuration.'; $description = 'Dear '.$current_user->user_name.',

This is a test mail sent to confirm if a mail is actually being sent through the smtp server that you have configured.
Feel free to delete this mail.

Thanks and Regards,
Team vTiger

'; if($to_email != '') { $mail_status = send_mail('Users',$to_email,$current_user->user_name,$from_email,$subject,$description); $mail_status_str = $to_email."=".$mail_status."&&&"; } else { $mail_status_str = "'".$to_email."'=0&&&"; } $error_str = getMailErrorString($mail_status_str); $action = 'EmailConfig'; if($mail_status != 1) { $action = 'EmailConfig&emailconfig_mode=edit&server_name='. vtlib_purify($_REQUEST['server']).'&server_user='. vtlib_purify($_REQUEST['server_username']).'&auth_check='. vtlib_purify($_REQUEST['smtp_auth']); } else{ if($db_update) { if($id=='') { $id = $adb->getUniqueID("vtiger_systems"); $sql="insert into vtiger_systems values(?,?,?,?,?,?,?,?,?)"; $params = array($id, $server, $port, $server_username, $server_password, $server_type, $smtp_auth, '',$from_email_field); } else { $sql="update vtiger_systems set server=?, server_username=?, server_password=?, smtp_auth=?, server_type=?, server_port=?,from_email_field=? where id=?"; $params = array($server, $server_username, $server_password, $smtp_auth, $server_type, $port,$from_email_field,$id); } $adb->pquery($sql, $params); } } } //While configuring Proxy settings, the submitted values will be retained when exception is thrown - dina if($server_type == 'proxy' && $error_str != '') { header("Location: index.php?module=Settings&parenttab=Settings&action=$action&server=$server&port=$port&server_username=$server_username&$error_str"); } else { header("Location: index.php?module=Settings&parenttab=Settings&action=$action&$error_str"); } ?>