initial checkin mailbox reading functions - lots more to do
This commit is contained in:
parent
13eaa802e4
commit
158b65894a
|
@ -7,4 +7,5 @@ include/jquery-1.4.2.min.js
|
||||||
*.out
|
*.out
|
||||||
*.version*
|
*.version*
|
||||||
push*
|
push*
|
||||||
|
langup
|
||||||
home.html
|
home.html
|
||||||
|
|
2
boot.php
2
boot.php
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
set_time_limit(0);
|
set_time_limit(0);
|
||||||
|
|
||||||
define ( 'FRIENDIKA_VERSION', '2.1.949' );
|
define ( 'FRIENDIKA_VERSION', '2.1.950' );
|
||||||
define ( 'DFRN_PROTOCOL_VERSION', '2.21' );
|
define ( 'DFRN_PROTOCOL_VERSION', '2.21' );
|
||||||
define ( 'DB_UPDATE_VERSION', 1051 );
|
define ( 'DB_UPDATE_VERSION', 1051 );
|
||||||
|
|
||||||
|
|
|
@ -17,9 +17,7 @@ If your Friendika site is called "demo.friendika.com" and your username/nickname
|
||||||
|
|
||||||
Notice this looks just like an email address. It was meant to be that way. It's easy for people to remember.
|
Notice this looks just like an email address. It was meant to be that way. It's easy for people to remember.
|
||||||
|
|
||||||
You *could* also put in the URL of your profile page, such as "http://demo.friendika.com/profile/bob".
|
You *could* also put in the URL of your "home" page, such as "http://demo.friendika.com/profile/bob", but the email-style address is certainly easier.
|
||||||
|
|
||||||
The email-style address is certainly easier.
|
|
||||||
|
|
||||||
When you've submitted the connection page, it will take you back to your own site where you must then login (if necessary) and verify the connection request on *your* site. Once you've done this, the two websites can communicate with each other to complete the process (after your new friend has approved the request).
|
When you've submitted the connection page, it will take you back to your own site where you must then login (if necessary) and verify the connection request on *your* site. Once you've done this, the two websites can communicate with each other to complete the process (after your new friend has approved the request).
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,107 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
|
||||||
|
function f9_imap_connect($mailbox,$username,$password) {
|
||||||
|
|
||||||
|
if(! (local_user() && function_exists('imap_open')))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
$mbox = imap_open($mailbox,$username,$password);
|
||||||
|
|
||||||
|
return $mbox;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function f9_imap_poll_from($mbox,$str) {
|
||||||
|
|
||||||
|
if(! ($mbox && $str))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
$search = imap_search($mbox,'FROM "' . $str . '"', SE_UID);
|
||||||
|
|
||||||
|
return $search;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function getmsg($mbox,$mid) {
|
||||||
|
// input $mbox = IMAP stream, $mid = message id
|
||||||
|
// output all the following:
|
||||||
|
global $charset,$htmlmsg,$plainmsg,$attachments;
|
||||||
|
$htmlmsg = $plainmsg = $charset = '';
|
||||||
|
$attachments = array();
|
||||||
|
|
||||||
|
// HEADER
|
||||||
|
$h = imap_header($mbox,$mid);
|
||||||
|
// add code here to get date, from, to, cc, subject...
|
||||||
|
|
||||||
|
// BODY
|
||||||
|
$s = imap_fetchstructure($mbox,$mid);
|
||||||
|
if (!$s->parts) // simple
|
||||||
|
getpart($mbox,$mid,$s,0); // pass 0 as part-number
|
||||||
|
else { // multipart: cycle through each part
|
||||||
|
foreach ($s->parts as $partno0=>$p)
|
||||||
|
getpart($mbox,$mid,$p,$partno0+1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function getpart($mbox,$mid,$p,$partno) {
|
||||||
|
// $partno = '1', '2', '2.1', '2.1.3', etc for multipart, 0 if simple
|
||||||
|
global $htmlmsg,$plainmsg,$charset,$attachments;
|
||||||
|
|
||||||
|
// DECODE DATA
|
||||||
|
$data = ($partno)?
|
||||||
|
imap_fetchbody($mbox,$mid,$partno): // multipart
|
||||||
|
imap_body($mbox,$mid); // simple
|
||||||
|
// Any part may be encoded, even plain text messages, so check everything.
|
||||||
|
if ($p->encoding==4)
|
||||||
|
$data = quoted_printable_decode($data);
|
||||||
|
elseif ($p->encoding==3)
|
||||||
|
$data = base64_decode($data);
|
||||||
|
|
||||||
|
// PARAMETERS
|
||||||
|
// get all parameters, like charset, filenames of attachments, etc.
|
||||||
|
$params = array();
|
||||||
|
if ($p->parameters)
|
||||||
|
foreach ($p->parameters as $x)
|
||||||
|
$params[strtolower($x->attribute)] = $x->value;
|
||||||
|
if ($p->dparameters)
|
||||||
|
foreach ($p->dparameters as $x)
|
||||||
|
$params[strtolower($x->attribute)] = $x->value;
|
||||||
|
|
||||||
|
// ATTACHMENT
|
||||||
|
// Any part with a filename is an attachment,
|
||||||
|
// so an attached text file (type 0) is not mistaken as the message.
|
||||||
|
if ($params['filename'] || $params['name']) {
|
||||||
|
// filename may be given as 'Filename' or 'Name' or both
|
||||||
|
$filename = ($params['filename'])? $params['filename'] : $params['name'];
|
||||||
|
// filename may be encoded, so see imap_mime_header_decode()
|
||||||
|
$attachments[$filename] = $data; // this is a problem if two files have same name
|
||||||
|
}
|
||||||
|
|
||||||
|
// TEXT
|
||||||
|
if ($p->type==0 && $data) {
|
||||||
|
// Messages may be split in different parts because of inline attachments,
|
||||||
|
// so append parts together with blank row.
|
||||||
|
if (strtolower($p->subtype)=='plain')
|
||||||
|
$plainmsg. = trim($data) ."\n\n";
|
||||||
|
else
|
||||||
|
$htmlmsg. = $data ."<br><br>";
|
||||||
|
$charset = $params['charset']; // assume all parts are same charset
|
||||||
|
}
|
||||||
|
|
||||||
|
// EMBEDDED MESSAGE
|
||||||
|
// Many bounce notifications embed the original message as type 2,
|
||||||
|
// but AOL uses type 1 (multipart), which is not handled here.
|
||||||
|
// There are no PHP functions to parse embedded messages,
|
||||||
|
// so this just appends the raw source to the main message.
|
||||||
|
elseif ($p->type==2 && $data) {
|
||||||
|
$plainmsg. = $data."\n\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
// SUBPART RECURSION
|
||||||
|
if ($p->parts) {
|
||||||
|
foreach ($p->parts as $partno0=>$p2)
|
||||||
|
getpart($mbox,$mid,$p2,$partno.'.'.($partno0+1)); // 1.2, 1.2.1, etc.
|
||||||
|
}
|
||||||
|
}
|
|
@ -8,7 +8,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: 2.1.949\n"
|
"Project-Id-Version: 2.1.949\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2011-04-14 20:36-0700\n"
|
"POT-Creation-Date: 2011-04-15 01:04-0700\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
@ -43,9 +43,9 @@ msgstr ""
|
||||||
#: ../../mod/follow.php:8 ../../mod/display.php:133 ../../mod/profiles.php:7
|
#: ../../mod/follow.php:8 ../../mod/display.php:133 ../../mod/profiles.php:7
|
||||||
#: ../../mod/profiles.php:227 ../../mod/invite.php:13 ../../mod/invite.php:54
|
#: ../../mod/profiles.php:227 ../../mod/invite.php:13 ../../mod/invite.php:54
|
||||||
#: ../../mod/dfrn_confirm.php:53 ../../addon/facebook/facebook.php:110
|
#: ../../mod/dfrn_confirm.php:53 ../../addon/facebook/facebook.php:110
|
||||||
#: ../../wip/photos.php:77 ../../wip/photos.php:723 ../../wip/group.php:19
|
#: ../../wip/photos.php:77 ../../wip/photos.php:723 ../../wip/follow2.php:8
|
||||||
#: ../../wip/photos-chris.php:97 ../../wip/photos-chris.php:770
|
#: ../../wip/group.php:19 ../../wip/photos-chris.php:97
|
||||||
#: ../../index.php:265
|
#: ../../wip/photos-chris.php:770 ../../index.php:265
|
||||||
msgid "Permission denied."
|
msgid "Permission denied."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -2006,21 +2006,21 @@ msgstr ""
|
||||||
msgid "Welcome back "
|
msgid "Welcome back "
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../mod/follow.php:186
|
#: ../../mod/follow.php:32 ../../wip/follow2.php:186
|
||||||
msgid "The profile address specified does not provide adequate information."
|
msgid "The profile address specified does not provide adequate information."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../mod/follow.php:192
|
#: ../../mod/follow.php:38 ../../wip/follow2.php:192
|
||||||
msgid ""
|
msgid ""
|
||||||
"Limited profile. This person will be unable to receive direct/personal "
|
"Limited profile. This person will be unable to receive direct/personal "
|
||||||
"notifications from you."
|
"notifications from you."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../mod/follow.php:247
|
#: ../../mod/follow.php:89 ../../wip/follow2.php:247
|
||||||
msgid "Unable to retrieve contact information."
|
msgid "Unable to retrieve contact information."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../mod/follow.php:293
|
#: ../../mod/follow.php:135 ../../wip/follow2.php:293
|
||||||
msgid "following"
|
msgid "following"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user