Changeset 7276 for trunk


Ignore:
Timestamp:
09/21/12 17:34:20 (12 years ago)
Author:
cristiano
Message:

Ticket #3126 - Mensagens encaminhadas ficando em branco

Location:
trunk/expressoMail1_2
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/expressoMail1_2/inc/class.imap_functions.inc.php

    r7268 r7276  
    26492649        } 
    26502650         
    2651         function send_mail($params) {  
     2651        function send_mail($params) { 
    26522652            require_once dirname(__FILE__) . '/../../services/class.servicelocator.php'; 
    26532653            require_once dirname(__FILE__) . '/../../prototype/api/controller.php'; 
     
    26742674            } 
    26752675 
     2676 
     2677            if (substr($params['input_to'], -1) == ',') 
     2678                $params['input_to'] = substr($params['input_to'], 0, -1); 
     2679 
     2680            if (substr($params['input_cc'], -1) == ',') 
     2681                $params['input_cc'] = substr($params['input_cc'], 0, -1); 
     2682 
     2683            if (substr($params['input_cco'], -1) == ',') 
     2684                $params['input_cco'] = substr($params['input_cco'], 0, -1); 
     2685 
    26762686            /*Wraps the text dividing the emails as from ">,"*/ 
    26772687            $toaddress = $db->getAddrs(preg_split('/>,/',preg_replace('/>,/', '>>,', $params['input_to']))); 
     
    27102720            $message_attachments = $params['message_attachments']; 
    27112721 
    2712             if (substr($params['input_to'], -1) == ',') 
    2713                 $params['input_to'] = substr($params['input_to'], 0, -1); 
    2714  
    2715             if (substr($params['input_cc'], -1) == ',') 
    2716                 $params['input_cc'] = substr($params['input_cc'], 0, -1); 
    2717  
    2718             if (substr($params['input_cco'], -1) == ',') 
    2719                 $params['input_cco'] = substr($params['input_cco'], 0, -1); 
     2722 
    27202723 
    27212724            // Valida numero Maximo de Destinatarios  
     
    28342837            } else { 
    28352838                //Compatibilização com Outlook, ao encaminhar a mensagem 
    2836                 $body = mb_ereg_replace('<!--\[', '<!-- [', $params['body']);                            
     2839                $body = mb_ereg_replace('<!--\[', '<!-- [', base64_decode($params['body'])); 
    28372840                                $body = str_replace("&lt;","&yzwkx;",$body); //Alterar as Entities padrão das tags < > para compatibilizar com o Expresso 
    28382841                                $body = str_replace("&gt;","&xzwky;",$body); 
     
    30163019 
    30173020            $attachment = json_decode($params['attachments'],TRUE); 
    3018  
     3021            $message_size_total = 0; 
    30193022            foreach ($attachment as &$value)  
    30203023            { 
  • trunk/expressoMail1_2/js/main.js

    r7271 r7276  
    28582858        if (preferences.auto_save_draft == 1) 
    28592859           autoSaveControl.status[ID] = true; 
     2860 
    28602861        var content = $("#content_id_"+ID); 
    28612862        var save_link = $("#content_id_"+ID).find(".save"); 
     
    28642865        save_link.button({disabled: true}); 
    28652866 
    2866         ID_tmp = ID; 
    2867  
    2868         var handler_send_message = function(data){ 
    2869                 send_message_return(data, this.ID_tmp); // this is a hack to escape quotation form connector bug 
    2870         }; 
    2871  
    2872         var mail_as_plain = document.getElementById( 'textplain_rt_checkbox_' + ID ); 
    2873         mail_as_plain = ( mail_as_plain ) ? mail_as_plain.checked : false; 
    2874  
    2875        var content_body  = RichTextEditor.getData('body_'+ID);         
    2876         var textArea = document.createElement("TEXTAREA"); 
    2877         textArea.style.display='none'; 
    2878         textArea.name = "body"; 
    2879         textArea.value = content_body; 
    2880     
    2881         var input_folder = document.createElement("INPUT"); 
    2882         input_folder.style.display='none'; 
    2883         input_folder.name = "folder"; 
    2884         input_folder.value = folder;       
    2885          
    2886         var input_type = document.createElement("INPUT");  
    2887         input_type.style.display='none';  
    2888         input_type.name = "type";  
    2889         input_type.value = RichTextEditor.plain[ID] ? 'plain' : 'html';  
    2890          
    2891         var uids = document.createElement("INPUT"); 
    2892         uids.style.display='none'; 
    2893         uids.name = "uids_save"; 
    2894         uids.value = uidsSave[ID].toString(); 
    2895          
    2896         var save_folder = document.createElement("INPUT"); 
    2897         save_folder.style.display='none'; 
    2898         save_folder.name = "save_folder"; 
    2899         save_folder.value = (openTab.imapBox[ID] && openTab.type[ID] < 6) ? openTab.imapBox[ID]: "INBOX" + cyrus_delimiter + draftsfolder; 
    2900          
    2901         var msg_attachments = document.createElement("INPUT"); 
    2902         msg_attachments.style.display='none'; 
    2903         msg_attachments.name = "attachments"; 
    2904         msg_attachments.value = listAttachment(ID); 
    2905  
    2906         if (is_ie){ 
    2907                 var i = 0; 
    2908                 while (document.forms(i).name != "form_message_"+ID){i++} 
    2909                 form = document.forms(i); 
    2910         } 
    2911         else 
    2912                 form = document.forms["form_message_"+ID]; 
    2913  
    2914                 // Evita que e-mails assinados sejam enviados quando o usuário tenta enviar um e-mail 
    2915                 // não assinado (desmarcou a opção) após tentar enviar um e-mail assinado que não passou 
    2916                 // no teste de validação. 
    2917                 var checkSign = document.getElementById('return_digital_'+ID); 
    2918                 if (checkSign && !checkSign.checked){ 
    2919                         var smime = Element('smime'); 
    2920                         if (smime) 
    2921                         { 
    2922                                 var parent = smime.parentNode; 
    2923                                 parent.removeChild(smime); 
    2924                         } 
    2925                  } 
    2926  
    2927         form.appendChild(textArea); 
    2928         form.appendChild(input_folder); 
    2929     form.appendChild(input_type); 
    2930         // Implementação do In_Reply_To e References 
    2931         var msgId = document.createElement("INPUT"); 
    2932         msgId.style.display = 'none'; 
    2933         msgId.name = 'messageNum'; 
    2934         msgId.value = currentTab; 
    2935  
    2936         form.appendChild(msgId); 
    2937     form.appendChild(save_folder); 
    2938     form.appendChild(uids); 
    2939         form.appendChild(msg_attachments); 
    2940  
    2941         var mail_type = document.createElement('input'); 
    2942         mail_type.setAttribute('type', 'hidden'); 
    2943         mail_type.name = 'type'; 
    2944         mail_type.value = ( mail_as_plain ) ? 'plain' : 'html'; 
    2945         form.parentNode.appendChild(mail_type); 
    2946  
    2947         var _subject = trim(content.find(".subject").val()); 
    2948         if((_subject.length == 0) && !confirm(get_lang("Send this message without a subject?"))) { 
    2949                 save_link.click(onClick); 
    2950                 content.find(".subject").focus(); 
    2951                 return; 
    2952         } 
    2953         //stringEmail = content.find('[name="input_to"]').val(); 
     2867    var _subject = trim(content.find(".subject").val()); 
     2868    if((_subject.length == 0) && !confirm(get_lang("Send this message without a subject?"))) { 
     2869        save_link.click(onClick); 
     2870        content.find(".subject").focus(); 
     2871        return; 
     2872    } 
    29542873 
    29552874    var stringReply = ""; 
     
    29602879        stringReply += $(value).find("input").val() + ","; 
    29612880    }); 
    2962     content.find('[name="input_reply_to"]').val(stringReply); 
    2963  
    2964         var stringEmail = ""; 
    2965         var stringToEmail = ""; 
    2966         draw_email_box(content.find(".to-tr").find("textarea:first").val() || content.find(".to-tr").find("input:visible").val(), content.find(".to-tr").find("textarea:first")); 
    2967         content.find(".to-tr").find("textarea:first").val(""); 
    2968         content.find(".to-tr").find("input:visible").val(""); 
    2969         var array = content.find(".to-tr").find(".box"); 
    2970         $.each(array, function(index, value){ 
    2971                 //stringEmail += $(value).find("input").val() + ","; 
    2972                 stringToEmail += $(value).find("input").val() + ","; 
    2973         }); 
    2974         content.find('[name="input_to"]').val(stringToEmail); 
    2975         stringEmail = stringToEmail; 
    2976         var stringCCoEmail = ""; 
    2977         if ( content.find('[name="input_cco"]').length){ 
    2978                 if(content.find(".cco-tr").css("display") != "none"){ 
    2979                         draw_email_box(content.find(".cco-tr").find("textarea:first").val() || content.find(".cco-tr").find("input:visible").val(), content.find(".cco-tr").find("textarea:first")); 
    2980                         content.find(".cco-tr").find("textarea:first").val(""); 
    2981                         content.find(".cco-tr").find("input:visible").val(""); 
    2982                         var array = content.find(".cco-tr").find(".box"); 
    2983                         $.each(array, function(index, value){ 
    2984                                 //stringEmail += $(value).find("input").val() + ","; 
    2985                                 stringCCoEmail += $(value).find("input").val() + ","; 
    2986                         }); 
    2987                         content.find('[name="input_cco"]').val(stringCCoEmail); 
    2988                 } 
    2989         } 
    2990         stringEmail += stringCCoEmail; 
    2991         var stringCCEmail = "";          
    2992         if(content.find(".cc-tr").css("display") != "none") 
    2993         { 
    2994                 draw_email_box(content.find(".cc-tr").find("textarea:first").val() || content.find(".cc-tr").find("input:visible").val(), content.find(".cc-tr").find("textarea:first")); 
    2995                 content.find(".cc-tr").find("textarea:first").val(""); 
    2996                 content.find(".cc-tr").find("input:visible").val(""); 
    2997                 var array = content.find(".cc-tr").find(".box"); 
    2998                 $.each(array, function(index, value){ 
    2999                         //stringEmail += $(value).find("input").val() + ","; 
    3000                         stringCCEmail += $(value).find("input").val() + ","; 
     2881    var stringToEmail = ""; 
     2882    draw_email_box(content.find(".to-tr").find("textarea:first").val() || content.find(".to-tr").find("input:visible").val(), content.find(".to-tr").find("textarea:first")); 
     2883    content.find(".to-tr").find("textarea:first").val(""); 
     2884    content.find(".to-tr").find("input:visible").val(""); 
     2885    var array = content.find(".to-tr").find(".box"); 
     2886    $.each(array, function(index, value){ 
     2887        stringToEmail += $(value).find("input").val() + ","; 
     2888    }); 
     2889    var stringEmail = ""; 
     2890    stringEmail = stringToEmail; 
     2891    var stringCCoEmail = ""; 
     2892    if ( content.find('[name="input_cco"]').length){ 
     2893        if(content.find(".cco-tr").css("display") != "none"){ 
     2894            draw_email_box(content.find(".cco-tr").find("textarea:first").val() || content.find(".cco-tr").find("input:visible").val(), content.find(".cco-tr").find("textarea:first")); 
     2895            content.find(".cco-tr").find("textarea:first").val(""); 
     2896            content.find(".cco-tr").find("input:visible").val(""); 
     2897            var array = content.find(".cco-tr").find(".box"); 
     2898            $.each(array, function(index, value){ 
     2899                stringCCoEmail += $(value).find("input").val() + ","; 
     2900            }); 
     2901        } 
     2902    } 
     2903    stringEmail += stringCCoEmail; 
     2904    var stringCCEmail = ""; 
     2905    if(content.find(".cc-tr").css("display") != "none") 
     2906    { 
     2907        draw_email_box(content.find(".cc-tr").find("textarea:first").val() || content.find(".cc-tr").find("input:visible").val(), content.find(".cc-tr").find("textarea:first")); 
     2908        content.find(".cc-tr").find("textarea:first").val(""); 
     2909        content.find(".cc-tr").find("input:visible").val(""); 
     2910        var array = content.find(".cc-tr").find(".box"); 
     2911        $.each(array, function(index, value){ 
     2912            stringCCEmail += $(value).find("input").val() + ","; 
     2913        }); 
     2914    } 
     2915    stringEmail +=      stringCCEmail; 
     2916 
     2917    var mailData = new Object(); 
     2918    mailData.body = Base64.encode(RichTextEditor.getData('body_'+ID)); 
     2919    mailData.folder = folder; 
     2920    mailData.type = RichTextEditor.plain[ID] ? 'plain' : 'html'; 
     2921    mailData.uids_save = uidsSave[ID].toString(); 
     2922    mailData.save_folder = (openTab.imapBox[ID] && openTab.type[ID] < 6) ? openTab.imapBox[ID]: "INBOX" + cyrus_delimiter + draftsfolder; 
     2923    mailData.attachments = listAttachment(ID); 
     2924    mailData.messageNum = currentTab; 
     2925    mailData.input_subject = trim(content.find(".subject").val()); 
     2926    mailData.input_reply_to = stringReply; 
     2927    mailData.input_to = stringToEmail; 
     2928    mailData.input_cco = stringCCoEmail; 
     2929    mailData.input_cc = stringCCEmail; 
     2930    mailData.input_cc = stringCCEmail; 
     2931    mailData.abaID = $(content).find('[name="abaID"]').val(); 
     2932    mailData.input_important_message = $(content).find('input:checkbox:checked[name="input_important_message"]').val(); 
     2933    mailData.input_return_receipt = $(content).find('input:checkbox:checked[name="input_return_receipt"]').val(); 
     2934    mailData.msg_forward_from = $(content).find('[name="msg_forward_from"]').val(); 
     2935    mailData.msg_reply_from = $(content).find('[name="msg_reply_from"]').val(); 
     2936 
     2937 
     2938        if(stringEmail != ""){ 
     2939                $.ajax({ 
     2940                        url: "controller.php?action=$this.imap_functions.send_mail", 
     2941            data:  mailData, 
     2942            type: 'POST', 
     2943                success: function(data){ 
     2944                send_message_return(connector.unserialize(data),ID); 
     2945                        }, 
     2946                        error: function(){ 
     2947                                write_msg("Erro ao tentar enviar a mensagem. Nova tentativa em alguns segundos..."); 
     2948                                var interval = setInterval(function(){ 
     2949                                                send_valided_message(ID,folder,folder_name); 
     2950                                                clearInterval(interval); 
     2951                                },15000); 
     2952                                return; 
     2953                        } 
    30012954                }); 
    3002                 content.find('[name="input_cc"]').val(stringCCEmail); 
    3003         } 
    3004         stringEmail +=  stringCCEmail; 
    3005         if (expresso_offline) { 
    3006                  
    3007                 var invalidEmail = searchEmail(stringEmail); 
    3008                 if(content.find('[name="input_to"]').val()=="" && content.find('[name="input_cco"]').val()=="" && content.find('[name="input_cc"]').val()=="") { 
    3009                         write_msg(get_lang("message without receiver")); 
    3010                         return; 
    3011                 }else if(invalidEmail[0] == true){ 
    3012                         write_msg("Os endereços de destinatário a seguir estão incorretos: "+invalidEmail[1]); 
    3013                         return; 
    3014                 } 
    3015  
    3016                 sucess = expresso_local_messages.send_to_queue(form); 
    3017                 var data_return = new Array(); 
    3018                 data_return.success = sucess; 
    3019                 handler_send_message(data_return,ID); 
    3020         } 
    3021         else{ 
    3022                 if(stringEmail != ""){ 
    3023                         $.ajax({                         
    3024                                 url: "controller.php?", 
    3025                                 success: function(data){ 
    3026                                         cExecuteForm("$this.imap_functions.send_mail", form, handler_send_message, ID); 
    3027                                 }, 
    3028                                 error: function(){ 
    3029                                         write_msg("Erro ao tentar enviar a mensagem. Nova tentativa em alguns segundos..."); 
    3030                                         var interval = setInterval(function(){ 
    3031                                                         send_valided_message(ID,folder,folder_name); 
    3032                                                         clearInterval(interval); 
    3033                                         },15000); 
    3034                                         return; 
    3035                                 } 
    3036                         });                      
    3037                 }else{ 
    3038                         write_msg(get_lang("message without receiver")); 
    3039                         return; 
    3040                 } 
    3041         } 
    3042  
    3043 } 
    3044  
     2955        }else{ 
     2956                write_msg(get_lang("message without receiver")); 
     2957                return; 
     2958        } 
     2959 
     2960 
     2961} 
    30452962 
    30462963function is_valid_email(campo){  
Note: See TracChangeset for help on using the changeset viewer.