better mailing list support, email addr can be either 'from' or 'to'

This commit is contained in:
Friendika 2011-05-19 17:25:41 -07:00
parent f151565029
commit 44d5c90af4
3 changed files with 18 additions and 4 deletions

View file

@ -4,7 +4,7 @@ set_time_limit(0);
ini_set('pcre.backtrack_limit', 250000); ini_set('pcre.backtrack_limit', 250000);
define ( 'FRIENDIKA_VERSION', '2.2.984' ); define ( 'FRIENDIKA_VERSION', '2.2.985' );
define ( 'DFRN_PROTOCOL_VERSION', '2.21' ); define ( 'DFRN_PROTOCOL_VERSION', '2.21' );
define ( 'DB_UPDATE_VERSION', 1054 ); define ( 'DB_UPDATE_VERSION', 1054 );

View file

@ -278,6 +278,7 @@ function probe_url($url) {
$links = lrdd($url); $links = lrdd($url);
if(count($links)) { if(count($links)) {
logger('probe_url: found lrdd links: ' . print_r($links,true), LOGGER_DATA);
foreach($links as $link) { foreach($links as $link) {
if($link['@attributes']['rel'] === NAMESPACE_DFRN) if($link['@attributes']['rel'] === NAMESPACE_DFRN)
$dfrn = unamp($link['@attributes']['href']); $dfrn = unamp($link['@attributes']['href']);
@ -345,8 +346,11 @@ function probe_url($url) {
$poll = 'email ' . random_string(); $poll = 'email ' . random_string();
$priority = 0; $priority = 0;
$x = email_msg_meta($mbox,$msgs[0]); $x = email_msg_meta($mbox,$msgs[0]);
$adr = imap_rfc822_parse_adrlist($x->from,''); if(stristr($x->from,$orig_url))
if(strlen($adr[0]->personal)) $adr = imap_rfc822_parse_adrlist($x->from,'');
elseif(stristr($x->to,$orig_url))
$adr = imap_rfc822_parse_adrlist($x->to,'');
if(isset($adr) && strlen($adr[0]->personal))
$vcard['fn'] = notags($adr[0]->personal); $vcard['fn'] = notags($adr[0]->personal);
} }
imap_close($mbox); imap_close($mbox);

View file

@ -15,7 +15,17 @@ function email_poll($mbox,$email_addr) {
return array();; return array();;
$search = imap_search($mbox,'FROM "' . $email_addr . '"', SE_UID); $search = imap_search($mbox,'FROM "' . $email_addr . '"', SE_UID);
return (($search) ? $search : array());
$search2 = imap_search($mbox,'TO "' . $email_addr . '"', SE_UID);
if($search && $search2)
$res = array_merge($search,$search2);
elseif($search)
$res = $search;
else
$res = $search2;
return (($res) ? $res : array());
} }