X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Femail.php;h=3e6a8186d8fb9eafdc541696220aa3d2d4e16935;hb=29b5d398fd4c80321fe0882bab9cc11455c75784;hp=91aafd45ed840716154800a68e756aa67796cd1d;hpb=ab099e91028122dfb6b10cf9510b1b061f6f547f;p=friendica.git diff --git a/include/email.php b/include/email.php index 91aafd45ed..3e6a8186d8 100644 --- a/include/email.php +++ b/include/email.php @@ -4,7 +4,7 @@ function email_connect($mailbox,$username,$password) { if(! function_exists('imap_open')) return false; - $mbox = imap_open($mailbox,$username,$password); + $mbox = @imap_open($mailbox,$username,$password); return $mbox; } @@ -12,15 +12,32 @@ function email_connect($mailbox,$username,$password) { function email_poll($mbox,$email_addr) { if(! ($mbox && $email_addr)) - return array();; + return array(); - $search = imap_search($mbox,'FROM "' . $email_addr . '"', SE_UID); - return (($search) ? $search : array()); + $search1 = @imap_search($mbox,'FROM "' . $email_addr . '"', SE_UID); + if(! $search1) + $search1 = array(); + + $search2 = @imap_search($mbox,'TO "' . $email_addr . '"', SE_UID); + if(! $search2) + $search2 = array(); + + $search3 = @imap_search($mbox,'CC "' . $email_addr . '"', SE_UID); + if(! $search3) + $search3 = array(); + + $search4 = @imap_search($mbox,'BCC "' . $email_addr . '"', SE_UID); + if(! $search4) + $search4 = array(); + + $res = array_unique(array_merge($search1,$search2,$search3,$search4)); + + return $res; } function construct_mailbox_name($mailacct) { - $ret = '{' . $mailacct['server'] . (($mailacct['port']) ? ':' . $mailacct['port'] : ''); + $ret = '{' . $mailacct['server'] . ((intval($mailacct['port'])) ? ':' . $mailacct['port'] : ''); $ret .= (($mailacct['ssltype']) ? '/' . $mailacct['ssltype'] . '/novalidate-cert' : ''); $ret .= '}' . $mailacct['mailbox']; return $ret; @@ -28,12 +45,12 @@ function construct_mailbox_name($mailacct) { function email_msg_meta($mbox,$uid) { - $ret = (($mbox && $uid) ? imap_fetch_overview($mbox,$uid,FT_UID) : array(array())); + $ret = (($mbox && $uid) ? @imap_fetch_overview($mbox,$uid,FT_UID) : array(array())); return ((count($ret)) ? $ret[0] : array()); } function email_msg_headers($mbox,$uid) { - $raw_header = (($mbox && $uid) ? imap_fetchheader($mbox,$uid,FT_UID) : ''); + $raw_header = (($mbox && $uid) ? @imap_fetchheader($mbox,$uid,FT_UID) : ''); $raw_header = str_replace("\r",'',$raw_header); $ret = array(); $h = split("\n",$raw_header); @@ -57,7 +74,7 @@ function email_msg_headers($mbox,$uid) { function email_get_msg($mbox,$uid) { $ret = array(); - $struc = (($mbox && $uid) ? imap_fetchstructure($mbox,$uid,FT_UID) : null); + $struc = (($mbox && $uid) ? @imap_fetchstructure($mbox,$uid,FT_UID) : null); if(! $struc) return $ret; @@ -86,8 +103,8 @@ function email_get_part($mbox,$uid,$p,$partno) { // DECODE DATA $data = ($partno) - ? imap_fetchbody($mbox,$uid,$partno, FT_UID|FT_PEEK) - : imap_body($mbox,$uid,FT_UID|FT_PEEK); + ? @imap_fetchbody($mbox,$uid,$partno, FT_UID|FT_PEEK) + : @imap_body($mbox,$uid,FT_UID|FT_PEEK); // Any part may be encoded, even plain text messages, so check everything. if ($p->encoding==4) @@ -152,6 +169,17 @@ function email_get_part($mbox,$uid,$p,$partno) { function email_header_encode($in_str, $charset) { $out_str = $in_str; + $need_to_convert = false; + + for($x = 0; $x < strlen($in_str); $x ++) { + if((ord($in_str[$x]) == 0) || ((ord($in_str[$x]) > 128))) { + $need_to_convert = true; + } + } + + if(! $need_to_convert) + return $in_str; + if ($out_str && $charset) { // define start delimimter, end delimiter and spacer @@ -188,4 +216,6 @@ function email_header_encode($in_str, $charset) { $out_str = $start . $out_str . $end; } return $out_str; -} \ No newline at end of file +} + +