0byt3m1n1
Path:
/
data
/
applications
/
aps.bak
/
vtiger
/
5.0.4
/
global
/
modules
/
Emails
/
[
Home
]
File: Save.php
<?php /********************************************************************************* * The contents of this file are subject to the SugarCRM Public License Version 1.1.2 * ("License"); You may not use this file except in compliance with the * License. You may obtain a copy of the License at http://www.sugarcrm.com/SPL * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for * the specific language governing rights and limitations under the License. * The Original Code is: SugarCRM Open Source * The Initial Developer of the Original Code is SugarCRM, Inc. * Portions created by SugarCRM are Copyright (C) SugarCRM, Inc.; * All Rights Reserved. * Contributor(s): ______________________________________. ********************************************************************************/ /********************************************************************************* * $Header: /advent/projects/wesat/vtiger_crm/sugarcrm/modules/Emails/Save.php,v 1.27 2005/04/29 08:54:38 rank Exp $ * Description: Saves an Account record and then redirects the browser to the * defined return URL. * Portions created by SugarCRM are Copyright (C) SugarCRM, Inc. * All Rights Reserved. * Contributor(s): ______________________________________.. ********************************************************************************/ //check for mail server configuration thro ajax if(isset($_REQUEST['server_check']) && $_REQUEST['server_check'] == 'true') { $sql="select * from vtiger_systems where server_type = ?"; $records=$adb->num_rows($adb->pquery($sql, array('email')),0,"id"); if($records != '') echo 'SUCESS'; else echo 'FAILURE'; die; } //Added on 09-11-2005 to avoid loading the webmail vtiger_files in Email process if($_REQUEST['smodule'] != '') { define('SM_PATH','modules/squirrelmail-1.4.4/'); /* SquirrelMail required vtiger_files. */ require_once(SM_PATH . 'functions/strings.php'); require_once(SM_PATH . 'functions/imap_general.php'); require_once(SM_PATH . 'functions/imap_messages.php'); require_once(SM_PATH . 'functions/i18n.php'); require_once(SM_PATH . 'functions/mime.php'); require_once(SM_PATH .'include/load_prefs.php'); //require_once(SM_PATH . 'class/mime/Message.class.php'); require_once(SM_PATH . 'class/mime.class.php'); sqgetGlobalVar('key', $key, SQ_COOKIE); sqgetGlobalVar('username', $username, SQ_SESSION); sqgetGlobalVar('onetimepad',$onetimepad, SQ_SESSION); $mailbox = 'INBOX'; } require_once('modules/Emails/Emails.php'); require_once('include/logging.php'); require_once('include/database/PearDatabase.php'); $local_log =& LoggerManager::getLogger('index'); $focus = new Emails(); global $current_user,$mod_strings,$app_strings; if(isset($_REQUEST['description']) && $_REQUEST['description'] !='') $_REQUEST['description'] = fck_from_html($_REQUEST['description']); setObjectValuesFromRequest($focus); //Check if the file is exist or not. //$file_name = ''; if(isset($_REQUEST['filename_hidden'])) { $file_name = $_REQUEST['filename_hidden']; } else { $file_name = $_FILES['filename']['name']; } $errorCode = $_FILES['filename']['error']; $errormessage = ""; if($file_name != '' && $_FILES['filename']['size'] == 0) { if($errorCode == 4 || $errorCode == 0) { if($_FILES['filename']['size'] == 0) $errormessage = "<B><font color='red'>".$mod_strings['LBL_PLEASE_ATTACH']."</font></B> <br>"; } else if($errorCode == 2) { $errormessage = "<B><font color='red'>".$mod_strings['LBL_EXCEED_MAX'].$upload_maxsize.$mod_strings['LBL_BYTES']." </font></B> <br>"; } else if($errorCode == 6) { $errormessage = "<B>".$mod_strings['LBL_KINDLY_UPLOAD']."</B> <br>" ; } else if($errorCode == 3 ) { if($_FILES['filename']['size'] == 0) $errormessage = "<b><font color='red'>".$mod_strings['LBL_PLEASE_ATTACH']."</font></b><br>"; } else{} if($errormessage != ""){ $ret_error = 1; $ret_parentid = $_REQUEST['parent_id']; $ret_toadd = $_REQUEST['parent_name']; $ret_subject = $_REQUEST['subject']; $ret_ccaddress = $_REQUEST['ccmail']; $ret_bccaddress = $_REQUEST['bccmail']; $ret_description = $_REQUEST['description']; $ret_from = $_REQUEST['from_add']; echo $errormessage; include("EditView.php"); exit(); } } if($_FILES["filename"]["size"] == 0 && $_FILES["filename"]["name"] != '') { $file_upload_error = true; $_FILES = ''; } if((isset($_REQUEST['deletebox']) && $_REQUEST['deletebox'] != null) && $_REQUEST['addbox'] == null) { imap_delete($mbox,$_REQUEST['deletebox']); imap_expunge($mbox); header("Location: index.php?module=Emails&action=index"); exit(); } function checkIfContactExists($mailid) { global $log; $log->debug("Entering checkIfContactExists(".$mailid.") method ..."); global $adb; $sql = "select contactid from vtiger_contactdetails inner join vtiger_crmentity on vtiger_crmentity.crmid=vtiger_contactdetails.contactid where vtiger_crmentity.deleted=0 and email= ?"; $result = $adb->pquery($sql, array($mailid)); $numRows = $adb->num_rows($result); if($numRows > 0) { $log->debug("Exiting checkIfContactExists method ..."); return $adb->query_result($result,0,"contactid"); } else { $log->debug("Exiting checkIfContactExists method ..."); return -1; } } //assign the focus values $focus->filename = $_REQUEST['file_name']; $focus->parent_id = $_REQUEST['parent_id']; $focus->parent_type = $_REQUEST['parent_type']; $focus->column_fields["assigned_user_id"]=$current_user->id; $focus->column_fields["activitytype"]="Emails"; $focus->column_fields["date_start"]= date(getNewDisplayDate());//This will be converted to db date format in save $focus->save("Emails"); //saving the email details in vtiger_emaildetails vtiger_table $qry = 'select email1 from vtiger_users where id = ?'; $res = $adb->pquery($qry, array($current_user->id)); $user_email = $adb->query_result($res,0,"email1"); $return_id = $focus->id; $email_id = $return_id; $query = 'select emailid from vtiger_emaildetails where emailid = ?'; $result = $adb->pquery($query, array($email_id)); if(isset($_REQUEST["hidden_toid"]) && $_REQUEST["hidden_toid"]!=''){ $all_to_ids = ereg_replace(",","###",$_REQUEST["hidden_toid"]); } if(isset($_REQUEST["saved_toid"]) && $_REQUEST["saved_toid"]!=''){ $all_to_ids .= ereg_replace(",","###",$_REQUEST["saved_toid"]); } //added to save < as $lt; and > as > in the database so as to retrive the emailID $all_to_ids = str_replace('<','<',$all_to_ids); $all_to_ids = str_replace('>','>',$all_to_ids); $all_cc_ids = ereg_replace(",","###",$_REQUEST["ccmail"]); $all_bcc_ids = ereg_replace(",","###",$_REQUEST["bccmail"]); $userid = $current_user->id; // added for netsol customization $domainName = ns_getDomainName(); if(empty($domainName)){ $domainName = trim($_REQUEST["domain_name"]); } $from_email = trim($_REQUEST["from_add"])."@".$domainName; if(isset($_REQUEST['send_mail']) && $_REQUEST['send_mail']){ //if mail is being sent and not saved $emails_allowed = ns_getNumberofEmailsAllowedPerDay(); $emails_sent_till_now = ns_getNumberofEmailsSentToday(); $emails_being_sent_now = ns_calculateMails($all_to_ids) + ns_calculateMails($all_cc_ids) + ns_calculateMails($all_bcc_ids); if($emails_sent_till_now >= $emails_allowed){ //give an alert and save all mails $message = "<script language='javascript'> alert('Email limit for the day has been already reached. This mail will be saved. Contact Your system administrator for further details.'); </script>"; echo $message; //save all mail and exit if($adb->num_rows($result) > 0){ $query = 'update vtiger_emaildetails set to_email=?, from_email=?, cc_email=?, bcc_email=?, idlists=?, email_flag="SAVED" where emailid = ?'; $qparams = array($all_to_ids, $from_email, $all_cc_ids, $all_bcc_ids, $_REQUEST["parent_id"], $email_id); }else{ $query = 'insert into vtiger_emaildetails values (?,?,?,?,?,"",?,"SAVED")'; $qparams = array($email_id, $from_email, $all_to_ids, $all_cc_ids, $all_bcc_ids, $_REQUEST["parent_id"]); } $adb->pquery($query, $qparams); if(isset($_REQUEST['return_action']) && $_REQUEST['return_action'] == 'mailbox'){ header("Location: index.php?module=$return_module&action=index"); } else { echo "<script>window.opener.location.href=window.opener.location.href;window.self.close();</script>"; } die; }elseif(($emails_being_sent_now+$emails_sent_till_now) > $emails_allowed){ //calculate what can be send and save rest $can_be_sent = $emails_allowed - $emails_sent_till_now; $message = "<script language='javascript'> alert('Email limit for the day reached. Some part of the mail will be sent and the other saved with the same name but no date sent.'); </script>"; echo $message; $temp_mails = ns_mailsToSend($all_to_ids, $all_cc_ids, $all_bcc_ids, $can_be_sent); ns_saveMails($from_email, $temp_mails['toSave']['to'], $temp_mails['toSave']['cc'], $temp_mails['toSave']['bcc']); $all_to_ids = implode("###",$temp_mails['toSend']['to']); $all_cc_ids = implode("###",$temp_mails['toSend']['cc']); $all_bcc_ids = implode("###",$temp_mails['toSend']['bcc']); } } //netsol customization ends if($adb->num_rows($result) > 0) { $query = 'update vtiger_emaildetails set to_email=?, from_email=?, cc_email=?, bcc_email=?, idlists=?, email_flag="SAVED" where emailid = ?'; $qparams = array($all_to_ids, $from_email, $all_cc_ids, $all_bcc_ids, $_REQUEST["parent_id"], $email_id); }else { $query = 'insert into vtiger_emaildetails values (?,?,?,?,?,"",?,"SAVED")'; $qparams = array($email_id, $from_email, $all_to_ids, $all_cc_ids, $all_bcc_ids, $_REQUEST["parent_id"]); } $adb->pquery($query, $qparams); require_once("modules/Emails/mail.php"); if(isset($_REQUEST['send_mail']) && $_REQUEST['send_mail'] && $_REQUEST['parent_id'] != ''){ //first the mail is send to the sender $user_mail_status = send_mail('Emails',$from_email,$current_user->user_name,'',$_REQUEST['subject'],$_REQUEST['description'],$_REQUEST['ccmail'],$_REQUEST['bccmail'],'all',$focus->id); //if block added to fix the issue #3759 if($user_mail_status != 1){ $query = "select crmid,attachmentsid from vtiger_seattachmentsrel where crmid=?"; $result = $adb->pquery($query, array($email_id)); $numOfRows = $adb->num_rows($result); for($i=0; $i<$numOfRows; $i++) { $attachmentsid = $adb->query_result($result,0,"attachmentsid"); if($attachmentsid > 0) { $query1="delete from vtiger_crmentity where crmid=?"; $adb->pquery($query1, array($attachmentsid)); } $crmid=$adb->query_result($result,0,"crmid"); $query2="delete from vtiger_crmentity where crmid=?"; $adb->pquery($query2, array($crmid)); } $query = "delete from vtiger_emaildetails where emailid=?"; $adb->pquery($query, array($focus->id)); $error_msg = "<font color=red><strong>".$mod_strings['LBL_CHECK_USER_MAILID']."</strong></font>"; $ret_error = 1; $ret_parentid = $_REQUEST['parent_id']; $ret_toadd = $_REQUEST['parent_name']; $ret_subject = $_REQUEST['subject']; $ret_ccaddress = $_REQUEST['ccmail']; $ret_bccaddress = $_REQUEST['bccmail']; $ret_description = $_REQUEST['description']; echo $error_msg; include("EditView.php"); exit(); } } $focus->retrieve_entity_info($return_id,"Emails"); //this is to receive the data from the Select Users button if($_REQUEST['source_module'] == null) { $module = 'users'; } //this will be the case if the Select Contact button is chosen else { $module = $_REQUEST['source_module']; } if(isset($_REQUEST['return_module']) && $_REQUEST['return_module'] != "") $return_module = $_REQUEST['return_module']; else $return_module = "Emails"; if(isset($_REQUEST['return_action']) && $_REQUEST['return_action'] != "") $return_action = $_REQUEST['return_action']; else $return_action = "DetailView"; if(isset($_REQUEST['return_id']) && $_REQUEST['return_id'] != "") $return_id = $_REQUEST['return_id']; if(isset($_REQUEST['filename']) && $_REQUEST['filename'] != "") $filename = $_REQUEST['filename']; $local_log->debug("Saved record with id of ".$return_id); if($_REQUEST['parent_id'] == '' && $_REQUEST['no_newsletter'] != ''){ $message = "<font color=red><strong>News letters not sent to the following id's".$_REQUEST[no_newsletter]."</strong></font>"; echo $message; exit(); } if(isset($_REQUEST['send_mail']) && $_REQUEST['send_mail'] && $_REQUEST['parent_id'] == ''){ if($_REQUEST["parent_name"] != '' && isset($_REQUEST["parent_name"])) { include("modules/Emails/webmailsend.php"); } } elseif( isset($_REQUEST['send_mail']) && $_REQUEST['send_mail']) include("modules/Emails/mailsend.php"); if(isset($_REQUEST['return_action']) && $_REQUEST['return_action'] == 'mailbox') header("Location: index.php?module=$return_module&action=index"); else { if($_REQUEST['return_viewname'] == '') $return_viewname='0'; if($_REQUEST['return_viewname'] != '')$return_viewname=$_REQUEST['return_viewname']; //Added for 4600 $inputs="<script>window.opener.location.href=window.opener.location.href;window.self.close();</script>"; echo $inputs; } ?>