Hehe. Enjoy!
Here is the version with mail subject to post title.
No subject, no title.
Should work for iso-8859-1 etc.
For UTF-8 you will have to make some tweaks.
PHP Code:
<?php
// simple email2post
// fix it as you need
// QSTR - 17.05.2015r1
// https://vborg.vbsupport.ru/showthread.php?t=318396
// GPL - http://www.gnu.org/copyleft/gpl.html
require_once('./global.php');
require_once(DIR . '/includes/functions_databuild.php');
// configure as you need
// http://php.net/manual/en/function.imap-open.php
$imap = imap_open("{localhost:995/pop3/ssl/novalidate-cert}INBOX", "user", "pass");
// user id used for posting
$post_user_id = 1234;
// forum id
$post_forum_id = 1;
// thread id
$post_thread_id = 1;
#######################################################################################################################
// add post, simple
function add_post($userid, $post, $post_title, $forumid, $threadid, $timestamp)
{
global $vbulletin;
// setup datamanager
$tdm =& datamanager_init('Post', $vbulletin, ERRTYPE_ARRAY, 'threadpost');
$tdm->set('userid', $userid);
$tdm->set('pagetext', $post);
$tdm->set('allowsmilie', 1);
$tdm->set('visible', 1);
$tdm->set('threadid', $threadid);
$tdm->set('dateline', $timestamp);
// if set
if ($post_title && trim($post_title) != "")
{
$tdm->set('title', $post_title);
}
// try to save the post
$tdm->pre_save();
// check for errors
if (empty($tdm->errors))
{
$post_id = $tdm->save();
// rebuild counters
build_thread_counters($threadid);
build_forum_counters($forumid);
return $post_id;
} else {
return false;
}
}
// connection ok?
if ($imap)
{
// count the messages in the mailbox
$mails_count = imap_num_msg($imap);
// if we got some
if($mails_count > 0)
{
// each mail
for ($mail_id = 1; $mail_id <= $mails_count; $mail_id++)
{
// mail header
$mail_header = imap_headerinfo($imap, $mail_id);
// mail body
$mail_body = imap_qprint(imap_body($imap, $mail_id));
// mail subject
$mail_subject = $mail_header->subject;
// some info
echo $mail_id . ".<br>";
echo "subject: " . $mail_subject . "<br>";
echo "mail body: " . "<br><pre>" . $mail_body . "</pre><br><b>post id: ";
echo add_post($post_user_id, $mail_body, $mail_subject, $post_forum_id, $post_thread_id, time());
echo "</b><br><hr><br>";
// mark for deletion
imap_delete($imap, $mail_id);
}
} else {
echo "empty mailbox";
}
// delete marked messages, close imap
imap_expunge($imap);
imap_close($imap);
}
?>