Go Back   vb.org Archive > vBulletin Modifications > Archive > vB.org Archives > vBulletin 3.0 > vBulletin 3.0 Beta Releases

Reply
 
Thread Tools
vB Mail Reply Details »»
vB Mail Reply
Version: 0.7Beta, by Colin F Colin F is offline
Developer Last Online: Apr 2014 Show Printable Version Email this Page

Version: 3.0.3 Rating:
Released: 08-07-2004 Last Update: 11-02-2004 Installs: 37
Re-useable Code Translations Is in Beta Stage  
No support by the author.

vB Email Reply 0.7BETA


What it does:
This allows your members (and you of course) to reply to threads by email. All they have to do is wirte to a specific email address (that you specify) and include a special code in the email subject.

How it works:
A script (vbemailreply.php) is run using the vB3 Cronsystem every minute. This checks a pop3 or imap account for emails and then processes these emails, inserting the data into the database. Then a reply is sent to the sender, stating that either the post/thread got entered correctly or that there was some kind of error.

Is it complicated?
Actually no. There is an install script that does most of the work as well as two small file changes. If you do have problems installing it, contact me for help.

Changes:
New files (2):
/includes/cron/vbmailreply.php
/includes/mimeDecode.php

Changed files(1):
/includes/functions_newpost.php

New database fields/tables(1):
New userfield added by installscript

New templates(0):

Changed templates(0):

New phrases(3):
emailreplyerror
emailreplydone
emailnewthreaddone

Changed phrases(1):
notify

Screenshots:
none

Credits:
The idea and small parts of the script are based on Chen 'FireFly' Avinadav's Email posts into forum hack, found here: https://vborg.vbsupport.ru/showthrea...threadid=40595

Instructions:
  • Backup all your files as well as your database.
    For help backing up your database, look here: http://www.vbulletin.com/docs/html/m...atabase_backup
  • Upload vbmailreply.php to your /includes/cron/ folder
  • Upload mimeDecode.php to your /includes/ folder
  • Open the file /includes/functions_newpost.php in your favourite PHP editing program.
  • Code:
    FIND (around line 196):
     
    $post['poststarttime'] = trim($post['poststarttime']);
     
    ADD BELOW:
     
    if ($post['isemail']) { $bbuserinfo = $post['userinfo']; }
     
     
    FIND (around line 273):
     
    if ($vboptions['logip'])
     
    REPLACE WITH:
     
    if ($vboptions['logip'] AND !$post['isemail'])
     
     
    FIND (around line 321):
     
    if ($prevpostfound)
    {
     
    ADD BELOW:
     
    if ($post['isemail'])
    {
    return ('dupepost');
    }
    else
    {
     
     
    FIND:
     
    }
    else
    {
    if ($parentid == 0 AND $type != 'thread')
     
    REPLACE WITH:
     
    }
    }
    if (!$prevpostfound)
    {
    if ($parentid == 0 AND $type != 'thread')
     
     
    FIND:
     
    	$useremails = $DB_site->query("
    		SELECT user.*, subscribethread.emailupdate
    		FROM " . TABLE_PREFIX . "subscribethread AS subscribethread, " . TABLE_PREFIX . "user AS user
    		LEFT JOIN " . TABLE_PREFIX . "usergroup AS usergroup ON (usergroup.usergroupid = user.usergroupid)
    		WHERE subscribethread.threadid = $threadid AND
    			subscribethread.emailupdate IN (1, 4) AND
    			subscribethread.userid = user.userid AND
    			user.usergroupid <> 3 AND
    			user.userid <> " . intval($userid) . " AND
    			user.lastactivity > " . intval($lastposttime['dateline']) . " AND
    			(usergroup.genericoptions & " . ISBANNEDGROUP . ") = 0
    	");
     
    REPLACE WITH:
     
    	$useremails = $DB_site->query("
    		SELECT user.*, userfield.*, subscribethread.emailupdate
    		FROM " . TABLE_PREFIX . "subscribethread AS subscribethread, " . TABLE_PREFIX . "user AS user
    		LEFT JOIN " . TABLE_PREFIX . "userfield AS userfield ON (userfield.userid = user.userid)
    		LEFT JOIN " . TABLE_PREFIX . "usergroup AS usergroup ON (usergroup.usergroupid = user.usergroupid)
    		WHERE subscribethread.threadid = $threadid AND
    			subscribethread.emailupdate IN (1, 4) AND
    			subscribethread.userid = user.userid AND
    			user.usergroupid <> 3 AND
    			user.userid <> " . intval($userid) . " AND
    			user.lastactivity > " . intval($lastposttime['dateline']) . " AND
    			(usergroup.genericoptions & " . ISBANNEDGROUP . ") = 0
    	");
     
     
    FIND:
     
    $evalemail["$languageid"] = '$message = "' . str_replace("\\'", "'", addslashes(iif(empty($email_text[PHRASETYPEID_MAILMSG]), $emails['-1'][PHRASETYPEID_MAILMSG],$email_text[PHRASETYPEID_MAILMSG]))) . '";'.
     
    ADD ABOVE:
     
    $touserfieldcode = "field".$vboptions[mailserver_profilefieldid];
    $subjectcode_reply = "[thread-".$threadinfo[threadid]."-".$touser[$touserfieldcode]."]";
    $subjectcode_newthread = "[newthread-".$foruminfo[forumid]."-".$touser[$touserfieldcode]."]";
  • Add the following as a translation of the phrase notify:
    Code:
    Hello $touser[username],
     
    $bbuserinfo[username] has just replied to a thread you have subscribed to entitled - $threadinfo[title] - in the $foruminfo[title] forum of $vboptions[bbtitle].
     
    This thread is located at:
    $vboptions[bburl]/showthread.php?t=$threadinfo[threadid]&goto=newpost
     
    ~~~~~ NEW ~~~~~
    New at $vboptions[bbtitle]!
    You can now reply to the thread by replying to this message. All you need to do is to make sure this code appears in the email subject:
    $subjectcode_reply
    You should also remove this text to ensure your reply is readable by other forum users.
    Additionaly, you can start a new thread in the $foruminfo[title] Forum simply by sending a mail to $vboptions[mailserver_emailaddress] with this code in the subject: $subjectcode_newthread
    ~~~~~ NEW ~~~~~
     
    Here is the message that has just been posted:
    ***************
    $pagetext
    ***************
     
    There may be other replies also, but you will not receive any more notifications until you visit the forum again.
     
    Yours,
    $vboptions[bbtitle] team
     
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Unsubscription information:
     
    To unsubscribe from this thread, please visit this page:
    $vboptions[bburl]/subscription.php?do=usub&t=$threadinfo[threadid]
     
    To unsubscribe from ALL threads, please visit this page:
    $vboptions[bburl]/subscription.php?do=viewsubscription&folderid=all
  • Upload the file vbmailreply_install.php to your admincp folder
  • Be sure to either have a POP3 or IMAP email account ready before running the installation. The data will need to be entered.
  • Open your browser and go to http://www.yourforums.com/admincp/vb...ly_install.php and follow the instructions.
  • Delete the vbmailreply_install.php file from your webserver.
Donations:
This hack will always be free, however your donations are kindly accepted and will help towards further development. If you donate, please leave me some info (either your forum site or username at vB.org) so that I can thank you.

Install:
Don't feel like donating, but still want to thank me for my work? Click the install button to show your appreciation. As a great side effect, you'll get an email update once there is a bigger update or important security fix!

Updates:
09.08.2004 - I've updated the vbemailreply_install.php file, as there was an wrong value while entering the settings.
Also added support for SSL (untested)
Fixed the whole install routine.
03.11.2004 - Updated the installation as well as the vbemailreply.php file.

Show Your Support

  • This modification may not be copied, reproduced or published elsewhere without author's permission.

Comments
  #112  
Old 11-17-2004, 11:53 AM
sabret00the's Avatar
sabret00the sabret00the is offline
 
Join Date: Jan 2003
Location: London
Posts: 5,268
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

can i ask why is this still in beta?
Reply With Quote
  #113  
Old 11-17-2004, 02:41 PM
Colin F's Avatar
Colin F Colin F is offline
 
Join Date: Jul 2004
Location: Switzerland
Posts: 1,551
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by sabret00the
can i ask why is this still in beta?
I've still got some things to fix up, and there was also something I wanted to add, allthough I can't remember what it was at the moment
Reply With Quote
  #114  
Old 11-17-2004, 03:07 PM
Lionel Lionel is offline
 
Join Date: Dec 2001
Location: Delray Beach, Florida
Posts: 3,277
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Colin, a stupid question does this hack deals with sessions? I was able to successfuly send a thread once, this after I recreated my sessions database. Also, I have been trying to send all the emails while I was online (webmail). Maybe because it knew I was online on the site and that couldn't be me sending an email? I know that's silly, but I must explore all the possibilities....
Reply With Quote
  #115  
Old 11-18-2004, 03:22 PM
scottct1 scottct1 is offline
 
Join Date: Mar 2002
Location: Connecticut
Posts: 391
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Ok I just tried installing this...

When an email is being sent out from the server it comes from the email address specified in my vbulletin options, not the special email box I setup for replies to go to.

I want users to be able to click reply and reply to their messages not have to remove the address in the to box and then use the correct address.

How do I fix this?

Thanks!
Reply With Quote
  #116  
Old 11-19-2004, 03:17 AM
KidCharlemane KidCharlemane is offline
 
Join Date: Apr 2003
Posts: 54
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I'm also getting blank emails from the forum when my posts are updated. Also no subject line. I've changed both instances of the notify phrase to match the required text but still nothing. Any ideas?
Reply With Quote
  #117  
Old 11-19-2004, 04:38 PM
Lionel Lionel is offline
 
Join Date: Dec 2001
Location: Delray Beach, Florida
Posts: 3,277
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by KidCharlemane
I'm also getting blank emails from the forum when my posts are updated. Also no subject line. I've changed both instances of the notify phrase to match the required text but still nothing. Any ideas?
try to update your phrases ...
Reply With Quote
  #118  
Old 11-19-2004, 04:44 PM
Lionel Lionel is offline
 
Join Date: Dec 2001
Location: Delray Beach, Florida
Posts: 3,277
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

More and more puzzling to me. It works from outlook express, but not from webmail based on same server... like I posted above. Does this make sense?
Reply With Quote
  #119  
Old 11-26-2004, 02:02 PM
nexialys
Guest
 
Posts: n/a
Default

question... why adding a new userfield for a email, when users already have their email embeded in their userinfos ?!

i don't see the use of a second email added to the userfields, using these userfields is always a crap... why not simply use the actual email, or add a new field in the user table for a secondary email ?!

anyway, i may make the change myself (personal thoughts, so personal use!)
Reply With Quote
  #120  
Old 11-26-2004, 03:41 PM
Colin F's Avatar
Colin F Colin F is offline
 
Join Date: Jul 2004
Location: Switzerland
Posts: 1,551
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by nexialys
question... why adding a new userfield for a email, when users already have their email embeded in their userinfos ?!

i don't see the use of a second email added to the userfields, using these userfields is always a crap... why not simply use the actual email, or add a new field in the user table for a secondary email ?!

anyway, i may make the change myself (personal thoughts, so personal use!)
nexialys, it seems you didn't look through the code all the way. There isn't any email in the additional userfield, what's added is a emailpassword.


Also, I don't see why you say the userfields are crap... To me they're one of the best things in vB3!
Reply With Quote
  #121  
Old 11-26-2004, 04:15 PM
nexialys
Guest
 
Posts: n/a
Default

nah, maybe it's useful, but badly built... you need to geopardise the field# instead of having a hardcoded name or id...

and email password or new email, i don't see why you don't just give it a try in the user table itself... would make less management from the system, and anyway... it's my own point of view.. you have yours..
Reply With Quote
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 08:07 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.06507 seconds
  • Memory Usage 2,312KB
  • Queries Executed 25 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (2)bbcode_code
  • (3)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (6)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (1)pagenav_pagelinkrel
  • (11)post_thanks_box
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (11)post_thanks_postbit_info
  • (10)postbit
  • (9)postbit_onlinestatus
  • (11)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete