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
  #372  
Old 08-28-2007, 08:10 PM
Cyricx Cyricx is offline
 
Join Date: Aug 2002
Location: Missouri
Posts: 1,144
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I'll have to check into the code. I'll check it out when I start on the vbmail handling for the cron job.
Reply With Quote
  #373  
Old 08-28-2007, 08:18 PM
cgmckeever cgmckeever is offline
 
Join Date: Aug 2007
Posts: 18
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks -- side note.....

in the cron script, you may want to change:
$fromaddress = $letter->sender[0]->mailbox ."@".$letter->sender[0]->host;
to:
$fromaddress = $letter->reply_to[0]->mailbox ."@".$letter->reply_to[0]->host;
if(strlen($fromaddress) == 0) $letter->sender[0]->mailbox ."@".$letter->sender[0]->host;

the script fails for gmail sent as another user ... such as when I send from my company profile in gmail, the script still sees me as host=gmail.com
Reply With Quote
  #374  
Old 08-28-2007, 08:20 PM
Cyricx Cyricx is offline
 
Join Date: Aug 2002
Location: Missouri
Posts: 1,144
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by cgmckeever View Post
Thanks -- side note.....

in the cron script, you may want to change:
$fromaddress = $letter->sender[0]->mailbox ."@".$letter->sender[0]->host;
to:
$fromaddress = $letter->reply_to[0]->mailbox ."@".$letter->sender[0]->host;

the script fails for gmail sent as another user ... such as when I send from my company profile in gmail, the script still sees me as host=gmail.com
It's supposed to fail

That's what keeps people from pretending they are someone else

If I didn't have that check in there, you could set your reply to address in gmail or yahoo as the admins email address and you would show to the forums as posting as the admin

To avoid that security loop hole, it checks who the actual domain is that is sending the email

Just use your true gmail address for your account and you will be fine.
Reply With Quote
  #375  
Old 08-28-2007, 08:30 PM
cgmckeever cgmckeever is offline
 
Join Date: Aug 2007
Posts: 18
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Cyricx View Post
It's supposed to fail

That's what keeps people from pretending they are someone else

If I didn't have that check in there, you could set your reply to address in gmail or yahoo as the admins email address and you would show to the forums as posting as the admin

To avoid that security loop hole, it checks who the actual domain is that is sending the email

Just use your true gmail address for your account and you will be fine.

The only issue is, that if I really want to post as the ADMIN, I could just set up a whole profile in thunderbird or outlook and truly send as that person. Then the script will still pass the tests and post as a fake author.

So, putting that test in limits people who use services like gmail but have multiple profiles.
Reply With Quote
  #376  
Old 08-28-2007, 08:49 PM
Cyricx Cyricx is offline
 
Join Date: Aug 2002
Location: Missouri
Posts: 1,144
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by cgmckeever View Post
The only issue is, that if I really want to post as the ADMIN, I could just set up a whole profile in thunderbird or outlook and truly send as that person. Then the script will still pass the tests and post as a fake author.

So, putting that test in limits people who use services like gmail but have multiple profiles.
You would have to have the password to login to the domain.

With yahoo I can go to the options, type whatever email name I want, and that would show up as me. I wouldn't need any passwords.

With outlook and thunderbird you have to have the password.

This is also why the error email that gets sent to you for the incorrect email address shows you the address that the modification sees you as having and has a link to update your email address

Your solution, doesn't require that people have a password or any access to the mailbox.

I'm not saying the method I'm using is perfect security... but it at least requires that you are on sending from the same domain as the email your trying to fabricate.

I'm sorry but I will not remove this feature for anything less then a more secure method.

Removing the prime security feature to me, is just not wise even if it's not the perfect method.
Reply With Quote
  #377  
Old 08-28-2007, 09:11 PM
cgmckeever cgmckeever is offline
 
Join Date: Aug 2007
Posts: 18
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Cyricx View Post
You would have to have the password to login to the domain.

With yahoo I can go to the options, type whatever email name I want, and that would show up as me. I wouldn't need any passwords.

With outlook and thunderbird you have to have the password.
.
I dont need a password to send an email from a yahoo (or other webmail account) that is not mine -- PM me your email address and I will demonstrate this. Thus, anyone can get around the simple 'from' check ..

That is why I am saying it is not a security feature, it is reducing the usability actually more so than any security feature.
Reply With Quote
  #378  
Old 08-28-2007, 10:40 PM
cgmckeever cgmckeever is offline
 
Join Date: Aug 2007
Posts: 18
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

If you add this code (in all spots cron and product xml) right after text_subject is defined, the EmailIntegration script will handle the custom prefixes _and_ use a default one if none is found - it seemed to already take into account the original prefixing anyhow [\$foruminfo[title_clean]-t-\$threadinfo[threadid]]:

Code:
// prefix code - cgmckeever

// use default
if (strlen($threadinfo[threadprefix]) == 0){
  $prefixes = explode("\r\n", trim($foruminfo['threadprefix']));
  $threadinfo[threadprefix] = $prefixes[0];
}
							
// wrap the prefix
if (strlen($threadinfo[threadprefix]) != 0){
  $threadinfo[threadprefix] = str_replace('{1}',$threadinfo[threadprefix],$vbulletin->options['prefixmarkupalt']);
  $threadinfo[threadprefix] = str_replace(' ',' ',$threadinfo[threadprefix]);
  // get rid of built in prefix
  $text_subject = trim(str_replace("[\$foruminfo[title_clean]-t-\$threadinfo[threadid]]",'',$text_subject));
  $text_subject = trim("\$threadinfo[threadprefix] " . $text_subject);
}

// end prefix code - cgmckeever
Reply With Quote
  #379  
Old 08-29-2007, 10:17 AM
Cyricx Cyricx is offline
 
Join Date: Aug 2002
Location: Missouri
Posts: 1,144
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by cgmckeever View Post
I dont need a password to send an email from a yahoo (or other webmail account) that is not mine -- PM me your email address and I will demonstrate this. Thus, anyone can get around the simple 'from' check ..

That is why I am saying it is not a security feature, it is reducing the usability actually more so than any security feature.
I emailed you an address for my test site and my admin address there to try to fake
Good luck!

Quote:
Originally Posted by cgmckeever View Post
If you add this code (in all spots cron and product xml) right after text_subject is defined, the EmailIntegration script will handle the custom prefixes _and_ use a default one if none is found - it seemed to already take into account the original prefixing anyhow [\$foruminfo[title_clean]-t-\$threadinfo[threadid]]:

Code:
// prefix code - cgmckeever
 
// use default
if (strlen($threadinfo[threadprefix]) == 0){
  $prefixes = explode("\r\n", trim($foruminfo['threadprefix']));
  $threadinfo[threadprefix] = $prefixes[0];
}
 
// wrap the prefix
if (strlen($threadinfo[threadprefix]) != 0){
  $threadinfo[threadprefix] = str_replace('{1}',$threadinfo[threadprefix],$vbulletin->options['prefixmarkupalt']);
  $threadinfo[threadprefix] = str_replace(' ',' ',$threadinfo[threadprefix]);
  // get rid of built in prefix
  $text_subject = trim(str_replace("[\$foruminfo[title_clean]-t-\$threadinfo[threadid]]",'',$text_subject));
  $text_subject = trim("\$threadinfo[threadprefix] " . $text_subject);
}
 
// end prefix code - cgmckeever

I'll get this into the next live version!

Thank you!
Reply With Quote
  #380  
Old 08-29-2007, 11:25 AM
Cyricx Cyricx is offline
 
Join Date: Aug 2002
Location: Missouri
Posts: 1,144
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Remember all, I am looking for beta testers!! be sure to PM me if you would like to help test the next version because I'll be rewriting the regexs in the upcoming version!
Reply With Quote
  #381  
Old 08-29-2007, 02:40 PM
cgmckeever cgmckeever is offline
 
Join Date: Aug 2007
Posts: 18
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

OK - although the THREAD PREFIX script has its place, I didn't like the need for it to be installed to get the EI prefix to work.

You need to add a DB field ei_prefix:

Code:
ALTER TABLE forum ADD ei_prefix VARCHAR( 50 ) NULL;
This needs to be manually changed since I dont want to tinker with the EI admin script and keep this as simple to reimplement when changes to the EI codebase are made. (HINT HINT)

The below snippet needs to be added to the EI cron and product files right after:
Code:
$text_subject = replace_template_variables($text_subject);

Code:
// prefix code - cgmckeever
// check for ei_prefix defined
if (strlen($foruminfo[ei_prefix]) != 0){
  // get rid of built in prefix
  $text_subject =  trim(str_replace("[\$foruminfo[title_clean]-t-\$threadinfo[threadid]]",'',$text_subject));
  $text_subject = trim("\$foruminfo[ei_prefix] " . $text_subject);
}
// end prefix code - cgmckeever
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 02:37 AM.


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.05437 seconds
  • Memory Usage 2,339KB
  • 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
  • (5)bbcode_code
  • (6)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