- Timestamp:
- 09/21/12 17:34:20 (12 years ago)
- Location:
- trunk/expressoMail1_2
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/expressoMail1_2/inc/class.imap_functions.inc.php
r7268 r7276 2649 2649 } 2650 2650 2651 function send_mail($params) { 2651 function send_mail($params) { 2652 2652 require_once dirname(__FILE__) . '/../../services/class.servicelocator.php'; 2653 2653 require_once dirname(__FILE__) . '/../../prototype/api/controller.php'; … … 2674 2674 } 2675 2675 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 2676 2686 /*Wraps the text dividing the emails as from ">,"*/ 2677 2687 $toaddress = $db->getAddrs(preg_split('/>,/',preg_replace('/>,/', '>>,', $params['input_to']))); … … 2710 2720 $message_attachments = $params['message_attachments']; 2711 2721 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 2720 2723 2721 2724 // Valida numero Maximo de Destinatarios … … 2834 2837 } else { 2835 2838 //Compatibilização com Outlook, ao encaminhar a mensagem 2836 $body = mb_ereg_replace('<!--\[', '<!-- [', $params['body']);2839 $body = mb_ereg_replace('<!--\[', '<!-- [', base64_decode($params['body'])); 2837 2840 $body = str_replace("<","&yzwkx;",$body); //Alterar as Entities padrão das tags < > para compatibilizar com o Expresso 2838 2841 $body = str_replace(">","&xzwky;",$body); … … 3016 3019 3017 3020 $attachment = json_decode($params['attachments'],TRUE); 3018 3021 $message_size_total = 0; 3019 3022 foreach ($attachment as &$value) 3020 3023 { -
trunk/expressoMail1_2/js/main.js
r7271 r7276 2858 2858 if (preferences.auto_save_draft == 1) 2859 2859 autoSaveControl.status[ID] = true; 2860 2860 2861 var content = $("#content_id_"+ID); 2861 2862 var save_link = $("#content_id_"+ID).find(".save"); … … 2864 2865 save_link.button({disabled: true}); 2865 2866 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 } 2954 2873 2955 2874 var stringReply = ""; … … 2960 2879 stringReply += $(value).find("input").val() + ","; 2961 2880 }); 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 } 3001 2954 }); 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 } 3045 2962 3046 2963 function is_valid_email(campo){
Note: See TracChangeset
for help on using the changeset viewer.