Go Back   vb.org Archive > vBulletin Modifications > Archive > vB.org Archives > vBulletin 3.6 > vBulletin 3.6 Add-ons
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools
Email Integration (New threads/replies by email) Details »»
Email Integration (New threads/replies by email)
Version: 2.6, by Cyricx Cyricx is offline
Developer Last Online: Dec 2011 Show Printable Version Email this Page

Category: Major Additions - Version: 3.6.8 Rating:
Released: 07-01-2007 Last Update: 02-28-2008 Installs: 192
DB Changes Uses Plugins Template Edits Auto-Templates
Code Changes Additional Files  
No support by the author.

This mod is based off of the Mail Reply modification by Colin F to which I have obtained permission to rewrite and release.

This modification allows you to mimic email lists such as yahoo groups through your forums!

After installing this modification you will have new settings in your forum manager where for each forum you can enable this modification and setup a separate email address to use for each forum that you have this enabled for.

Just like how there is a separate email address for each yahoo group.

After doing so, members can subscribe to each forum that this mod is enabled for to receive notifications for new threads and replies.

Any posts in that forum, will be sent to them via email. (Example email attached below). The users can then reply to that email (which will then be processed and posted to the forums through the cron job that runs every 10 minutes), or they can send a new email to the email address and a brand new thread will be created!

Essentially mimicing an email list! Suddenly those users that hate forums, can still be dragged into the conversations and help keep the forum's activity level up!


BUGS!
These are the known bugs to date:
  • Confirmed bug that email processing does not handle Japanese characters.
Unsupported Items
These are the items that are not currently supported:
  • Some custom bbcode modifications will not display like they do on the forums in the html emails. Like glow, and the table mod.
TO UPGRADE
  • Please see the file in the zip for upgrading!! If your upgrading from version 2.3.X you will need to reverse some file edits that are no longer nessecary!
NEW INSTALL
  • See instructions in the zip file.
VERSION HISTORY!
(See the file in the zip for a complete history!)
  • 2.6 Release
    • Bug Fixes
      • Joining an unmoderated public group will now auto subscribe you per the usergroup settings.
      • NO CONFLICTS with Instant Thread Subscription! See details in below post.
    • New Stuff
      • User Option Allow Auto Subscribe - This is an admin allowable, user option that let's the user choose to not be auto subscribed.
      • User Option not receive own posts - A new user option that lets them select to NOT receive their own posts via email.
      • Editted the phrase for the Auto Subscription script to tell people what to do if there are no listings.
      • Added error checks when saving a usergroup for if auto subscriptioin is entered with a forumid for a forum that does not have email integration enabled and also checks that the usergroup you are saing is entered in the forum manager as allowed to use email integration.
  • 2.6.1 Release (BETA VERSION)
    • Hot Fix
      • It appears I was unseting a variable too soon. I've corrected this and it has resolved the issue with multiple posted replies on my test server.
Most of these will be slow to make it in til I know I've got the code to handle just about every type of email we could receive But in anycase, here are the ideas for future versions!
  • End User Option to subscribe to just receive new thread emails, or receive all new thread & reply emails (current version does all new threads & replies).
Thanks to RedTyger, Bob Denny, Ed Kohwley and Chris McKeever for their additions and assistance with portions of this code.

Huge thanks also goes to the many individuals that have helped test various incarnations of this mod.

MAD PROPS TO: cgmckeever for a great quoting regex for the old format, and all the mods at www.4winmobile.com for helping test version 2.4 prior to release!!

You guys rock!

Please feel free to donate to my continued work on this modification!! It let's me spend more time on it!
Make a Donation!


Version 2.6 will work with both 3.6.8 and 3.7!


The #.X versions are the solid tested versions.

The #.X.X versions are the beta versions. New features and bug fixes will be worked in there and then when I have a solid version it'll be released as the next #.X

Thank you!!

~ Cyricx

Supporters / CoAuthors

Show Your Support

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

Comments
  #222  
Old 07-27-2007, 05:55 PM
rbgrn rbgrn is offline
 
Join Date: Jul 2007
Posts: 19
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

That was full of bugs. I forgot to specify the forum in the query. Oops. Here's the updated code

Code:
            // hide email addresses
            $mailmessage = preg_replace("/[a-zA-Z0-9\-_]+@[a-zA-Z0-9\-_]+.[a-z]{2,4}/", 'xxx@xxx.xxx', $mailmessage);

            // find thread with matching title 'Post'
            // make reply if match
            $baseTitle = preg_replace("/re: /", "", $title);
            $baseTitle = preg_replace("/Re: /", "", $baseTitle);
            $baseTitle = preg_replace("/RE: /", "", $baseTitle);
            $forumid = $foruminfo['forumid'];
            $queryResult = $vbulletin->db->query_first("
                SELECT threadid
                FROM " . TABLE_PREFIX . "thread
                WHERE forumid = $forumid AND (title = '$title' OR title = '$baseTitle') ORDER BY threadid DESC LIMIT 1
            ");
            if ($queryResult['threadid']) {
                $threadid = $queryResult['threadid'];
                $type = "reply";
                $cronlog .= "Found reply for thread $threadid";
            }
            // ##### Time To Post The Reply #####
            if ($type == "reply")
            {
                // Building post info
Reply With Quote
  #223  
Old 07-28-2007, 10:33 AM
sdsvtdriver sdsvtdriver is offline
 
Join Date: Mar 2005
Posts: 77
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Tralala View Post


Why wouldn't they just send the pic to the mailboxes already used by this mod?

ie: general@myvbforum.com

Since the sending email address is cross-checked against the member's list, it's more or less just as secure. They can take pic, email it from the phone, and it gets posted. Am I missing something? What more does your request accomplish?

(In other words, this mod isn't just for replies, it's also for new threads too.)
Quote:
Originally Posted by Cyricx View Post


This is possible with the current code.

If a user is in a usergroup that is set in this setting in the forum manager -

Please enter the usergroup IDs that can post and reply by email.

They can send an email to the email address for the site and it will post. They do NOT have to be subscribed to the forum in order to start a new thread from email
Thanks for the replies. I missed the feature where new threads can be creaed, not just replies posted. However, the user would have to have their mobile phone email address as their main email address for the site, correct?. I could see where people would want to be able to send texts and pictures from their phone and create new threads, however receive subscription/PM notifications to their email address.

Please correct me if I still am not understanding the functionality correctly.
Reply With Quote
  #224  
Old 07-28-2007, 01:26 PM
Tralala's Avatar
Tralala Tralala is offline
 
Join Date: Jan 2006
Posts: 1,207
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

My mobile phone (a Treo 700p) uses the same "email address" as my computer. So if I emailed a picture/attachment, it'd work.


But if you are talking about sending an MMS (multimedia SMS text message) as an email, yes, it'd be addressed from something like yourphonenumber@yourcellservice.com

US Based Carriers:

Alltel = xxxxxxxxxx@message.alltel.com
AT&T = xxxxxxxxxx@mms.att.net
Boost Mobile = xxxxxxxxxx@myboostmobile.com
Cingular (AT&T) = xxxxxxxxxx@mms.mycingular.com
Einstein PCS = xxxxxxxxxx@einsteinmms.com
Sprint = xxxxxxxxxx@messaging.sprintpcs.com
T-Mobile = xxxxxxxxxx@tmomail.net
US Cellular = xxxxxxxxxx@mms.uscc.net
Verizon Wireless = xxxxxxxxxx@vzwpix.com
Virgin Mobile = xxxxxxxxxx@vmobl.com


...and those wouldn't work, since it'd be unlikely that the person is using those as their "registered" email address.

Perhaps Cyricx can come up with additional allowance to allow for the processing of such SMS or MMS messages.
Reply With Quote
  #225  
Old 07-30-2007, 02:17 PM
Cyricx Cyricx is offline
 
Join Date: Aug 2002
Location: Missouri
Posts: 1,144
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by rbgrn View Post
Cyricx - I've got everything working with a few modifications, here's my general experience feedback and breakdown:
1a) I modified the code to figure out which thread an email should go into using the subject
I'd advise against doing it this way.. There is a good chance you will have more then one thread with the same name across all your forums... the thread id is a much more certain route. Not to mention some email programs to different formating with RE: and FW:. This is the reason my current code works off the thread id

Quote:
2) There is no cron logging working for this
2a) I tried adding some in the cron job php and changed the phrase to have {1} in it so that it'd show up, but for whatever reason (I'm new to vb) it does not still
2b) I recommend adding some informational and debugging logging as it's frustrating when things aren't working and you can't figure out why
2c) My recommended categories - Email Received, Email Sent, Error Email Sent, Other Errors
Yeah.. I'm still learning the cron logging system and trying to learn how to log those. I know zero about the cron logs yet, so that's definately on my list

Quote:
3) Configuration
3a) It'd be ideal to have configuration as a separate menu item rather than hang off the forum itself. Multiple select of forums would be excellent on a single configuration
3b) For my set up, I'd like to have an override user that ALL emails get posted as
3c) Also I'd like to pull email from one box and depending on who it's from, get delegated into different forums (for me that translates to multiple mailing list support off 1 account). Another solution would be supporting a box other than INBOX
3d) I'd like an option to globally shut off all outbound email, as I don't use that.
3e) I don't want any other behavior changed within my board
So you allow incoming email? but not outbound? so the whole subscription thing, you don't need? Hmm... so your only using it to start new threads in forums?

Quote:
4) Security
4a) Email inherently is insecure to use for this as I can forge my From address and post as someone I'm not. There's not a lot you can do about that, unfortunately. Just a concern.
Completely agree. I'm brainstorming ideas to help secure it more without making it any more complex for the end user.

Quote:
5) Code
5a) Your code is one monolithic block. It'll be easier for you to add features if you refactor it a bit, breaking it into logical blocks using methods or classes if it gets even bigger.
5b) Consider adding some debugging ability. It'd be nice for us hackers.
The cron files HATE functions... I used to have the mail error code in a function and I had to create a list of all the variables I wanted to go through the function as it doesn't seem to accept global functions when embedded in the file.

Quote:
Of course it's easy for someone to sit back and criticize another's work, which is not what I'm trying to do. I really appreciate your time and think this is very valuable. I have different uses for it than what you intended initially and I'd consider polishing this off doing all of my above things and forking it off into a different project maybe called vBulletin Mail Pull or something of that nature. I may consider that if I get some more time to work on this in the future. For now, I'll create multiple mail boxes and users to go into the different forums for different mailing lists.

Thanks again for all your work.
I totally appreciate the ideas and input.

I think I saw in your block how to add to the cron log, so that may make it into an upcoming version.



All - My apologies for the delay in the next version, there was a few bugs found that I need to work on and unfortunately this weekend some RL fit hit the shan so things have been very hectic. Slight delay in the next version unfortunately
Reply With Quote
  #226  
Old 07-30-2007, 02:19 PM
Cyricx Cyricx is offline
 
Join Date: Aug 2002
Location: Missouri
Posts: 1,144
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Tralala View Post
My mobile phone (a Treo 700p) uses the same "email address" as my computer. So if I emailed a picture/attachment, it'd work.


But if you are talking about sending an MMS (multimedia SMS text message) as an email, yes, it'd be addressed from something like yourphonenumber@yourcellservice.com

US Based Carriers:

Alltel = xxxxxxxxxx@message.alltel.com
AT&T = xxxxxxxxxx@mms.att.net
Boost Mobile = xxxxxxxxxx@myboostmobile.com
Cingular (AT&T) = xxxxxxxxxx@mms.mycingular.com
Einstein PCS = xxxxxxxxxx@einsteinmms.com
Sprint = xxxxxxxxxx@messaging.sprintpcs.com
T-Mobile = xxxxxxxxxx@tmomail.net
US Cellular = xxxxxxxxxx@mms.uscc.net
Verizon Wireless = xxxxxxxxxx@vzwpix.com
Virgin Mobile = xxxxxxxxxx@vmobl.com


...and those wouldn't work, since it'd be unlikely that the person is using those as their "registered" email address.

Perhaps Cyricx can come up with additional allowance to allow for the processing of such SMS or MMS messages.
Hmmm,

yeah I'd have to think about this, could prolly do it with a user option where they listed alternate email addresses by line or separated by a comma with no spaces so that it forms an array that could be checked against.

Something to consider for 3.0
Reply With Quote
  #227  
Old 07-30-2007, 03:53 PM
rbgrn rbgrn is offline
 
Join Date: Jul 2007
Posts: 19
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Ok last time: here's my code with bugfixes.

Code:
            // hide email addresses
            $mailmessage = preg_replace("/[a-zA-Z0-9\-_]+@[a-zA-Z0-9\-_]+.[a-z]{2,4}/", 'xxx@xxx.xxx', $mailmessage);

            // find thread with matching title 'Post'
            // make reply if match
            $baseTitle = preg_replace("/re: /", "", $title);
            $baseTitle = preg_replace("/Re: /", "", $baseTitle);
            $baseTitle = preg_replace("/RE: /", "", $baseTitle);
            $forumid = $foruminfo['forumid'];
            $queryResult = $vbulletin->db->query_first("
                SELECT threadid
                FROM " . TABLE_PREFIX . "thread
                WHERE forumid = $forumid AND (title = '" . $vbulletin->db->escape_string($title) . "' OR title = '" . $vbulletin->db->escape_string($baseTitle) . "') ORDER BY threadid DESC LIMIT 1
            ");
            if ($queryResult['threadid']) {
                $threadid = $queryResult['threadid'];
                $type = "reply";
                $cronlog .= "Found reply for thread $threadid";
            }
            // ##### Time To Post The Reply #####
            if ($type == "reply")
            {
                // Building post info
Reply With Quote
  #228  
Old 07-30-2007, 03:56 PM
rbgrn rbgrn is offline
 
Join Date: Jul 2007
Posts: 19
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Cyricx - All I'm using it for is to read email from a mailing list and piece together the threads. No replies are allowed on the forum. It's just informational.

I also don't want people to be able to email in replies right now. I can't use threadid because the threads aren't being replied to from the forum. I have to do a gmail-style subject match to make it all work. I understand the limitations but it's all I can do.

functions work just fine in cron jobs, you just need to watch your scope.
Reply With Quote
  #229  
Old 07-30-2007, 03:57 PM
Cyricx Cyricx is offline
 
Join Date: Aug 2002
Location: Missouri
Posts: 1,144
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Okay, so what happens if you have two threads titled

"Hey read me!"

in the same forum?

One of those could be a year old

Your query would add the posts to the oldest thread, rather then the newest and correct thread

The hiding email address preg, is a great idea! my newest version being debugged right now pulls out the To: emailaddress line completely out but your idea is a much better one
Reply With Quote
  #230  
Old 07-30-2007, 03:59 PM
Cyricx Cyricx is offline
 
Join Date: Aug 2002
Location: Missouri
Posts: 1,144
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

That's where I'm getting confused then

How are the threads being replied to? I mean... how are they getting the emails that they are replying too?

if your not allowing replies, why are you applying emails as replies to a thread?
Reply With Quote
  #231  
Old 07-31-2007, 06:53 PM
Cyricx Cyricx is offline
 
Join Date: Aug 2002
Location: Missouri
Posts: 1,144
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Just a few more cleanups to do with Pocomail then I'll release the 2.x version
Reply With Quote
Reply


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 04:26 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.08791 seconds
  • Memory Usage 2,348KB
  • Queries Executed 26 (?)
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
  • (9)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
  • (3)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
  • (11)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