Go Back   vb.org Archive > vBulletin Modifications > Archive > vB.org Archives > vBulletin 3.6 > vBulletin 3.6 Add-ons

Reply
 
Thread Tools
vBMS : vBulletin Mail System Details »»
vBMS : vBulletin Mail System
Version: 3.0.0p, by Krofh Krofh is offline
Developer Last Online: Jun 2013 Show Printable Version Email this Page

Category: Major Additions - Version: 3.6.5 Rating:
Released: 02-28-2007 Last Update: 03-14-2007 Installs: 243
DB Changes Uses Plugins Template Edits
Additional Files Is in Beta Stage  
No support by the author.

vBulletin Mail System

Finally, for vBulletin 3.6, there is a port from filburt1's original hack. For those of you who aren't aware, he essentially declared it open source, and it's been a bit of a wait for someone to fix it up... I've wanted it for my site, too, so I finally sat down and just did it.

What is this?
The vBulletin Mail System is a way to give your users webmail access from your site. They can have a name@yourwebsite.com address, send and receive emails and attachments, etc. Options such as mailbox quotas, limits on numbers/types of attachments, a message trailer ("Free mail at yourwebsite.com!") at the end of each message, etc. are all available as well.

Please note: this is a pre-final version. As far as I have seen, it is working so far for me, but I have not tested it completely and thoroughly and it's very likely there'll be a number of bugs popping up. However, I have successfully been able to install this on a clean board, exchange emails regularly (including attachments), go through all the basic options/etc. without any errors popping up, so it should be fine. Still, make sure you back up your database before installing this, just due to the nature of its "beta"-ness.

To install: upload all files from the "upload" directory to your server in the proper directories. Then, navigate to admincp/vbms_install.php on your server and run the installer. It will make several template additions. If your navbar or header templates hav been modified, it will not be able to do it automatically, and you'll have to add these edits yourself.

In template navbar, find:
Code:
<td class="vbmenu_control"><a href="usercp.php$session[sessionurl_q]">$vbphrase[user_cp]</a></td>
Add after:
Code:
			<if condition="$show['popups']">
				<td class="vbmenu_control" id="navbar_vbms">
					<a href="vbms.php$session[sessionurl_q]">$vbphrase[email]</a>
			
					<if condition="$vbms_newmessages['newcount'] > 0">
						<span style="font-weight: normal; padding: 1px 1px 1px 2px; margin: 0px 3px 0px 2px; border: 1px inset" class="alt1">
							<phrase 1="$vbms_newmessages[newcount]">$vbphrase[x_new]</phrase>
						</span>
					</if>
				
					<script type="text/javascript">
						<!--
							vbmenu_register("navbar_vbms");
						// -->
					</script>
				</td>
			<else />
				<td class="vbmenu_control" id="navbar_vbms">
					<a href="vbms.php$session[sessionurl_q]">$vbphrase[email]</a>
				
					<if condition="$vbms_newmessages['newcount'] > 0">
						<span style="font-weight: normal; padding: 1px 1px 1px 2px; margin: 0px 3px 0px 2px; border: 1px inset" class="alt1">
							<phrase 1="$vbms_newmessages[newcount]">$vbphrase[x_new]</phrase>
						</span>
					</if>
				</td>
			</if>
Find:
Code:
<!-- / header quick search form -->
	</if>

	<if condition="$show['member']">
Add after:
Code:
		<div class="vbmenu_popup" id="navbar_vbms_menu" style="display: none">
			<table cellpadding="4" cellspacing="1" border="0">
				<tr><td class="thead">vBulletin Mail System</td></tr>
				<tr><td class="vbmenu_option"><a href="vbms.php?$session[sessionurl]">$vbphrase[navbar_inbox]</a></td></tr>
				<tr><td class="vbmenu_option"><a href="vbms_new.php?$session[sessionurl]">$vbphrase[navbar_write_message]</a></td></tr>
				<tr><td class="vbmenu_option"><a href="vbms_ab.php?$session[sessionurl]">$vbphrase[navbar_address_book]</a></td></tr>
				<tr><td class="vbmenu_option"><a href="vbms_folders.php?$session[sessionurl]">$vbphrase[navbar_folders]</a></td></tr>
				<tr><td class="vbmenu_option"><a href="vbms_filters.php?$session[sessionurl]">$vbphrase[navbar_filters]</a></td></tr>
				<tr><td class="vbmenu_option"><a href="vbms_options.php?$session[sessionurl]">$vbphrase[navbar_options]</a></td></tr>
				<tr><td class="vbmenu_option"><a href="faq.php?$session[sessionurl]faq=faq_vbms">$vbphrase[navbar_help]</a></td></tr>
			</table>
		</div>
In your ACP, there should be a new set of options in a "vBulletin Mail System" category. That set of options is your main set of management stuff, and is pretty straightforward.

Feel free to post with any bugs or questions you find, etc. I'm trying to get this working again thoroughly, for all of us.

FAQ
  • Is POP support available for my users?
    No, this is similar to a webmail system.
  • What is a catch-all email address, and how do I set it up?
    A catch-all address is an email address that any mail sent to your server that isn't picked up by another account will go to. For example, if someone sends an email to randomgibberish@yoursite.com and you do not have a "randomgibberish" account defined, it would forward to your catch-all account that you have set up, such as all@yoursite.com.
  • Can I run this if my server doesn't let me have a catch-all mail account?
    Yes, but it's not recommended. As has been suggested by a few members, you can set up one mail account to the be "catch-all" and have vBMS connect to that, then set up mail accounts for each member who wants one and have it forward to the catch-all. All this has to be set up manually with your web host, and takes a great deal of willpower and availability from the website administrator, and is thus not recommended.
  • I'm receiving the following error:
    Code:
    Fatal error: Call to undefined function: imap_open()...
    If you're getting an error similar to this, you do not have IMAP functionality available in PHP. Find your php.ini file on your server (usually /usr/local/lib/php.ini on Linux, C:\Windows\php.ini on Windows), and find the extensions section. Uncomment the line ";extension=php_imap.dll" (that is, remove the semicolon at the beginning) and restart your web server. If you don't have access to your web server to do this, contact your web host about installing IMAP support for PHP. If they won't do it, then this hack is not for you.
  • I can't connect to the mail server, with this error:
    Code:
    Warning: imap_open() [function.imap-open]: Couldn't open stream {localhost:110/pop3}INBOX in /includes/vbms_class_installer.php on line 791
    First, make sure that your port number and server information are right. Some mail servers are on non-default ports (this is common), and some you may have to connect to a different host besides localhost (this is very rare). Also, try using the "Force no-TLS connection" option in the vBMS Options in the ACP.
  • I can connect to the server just fine, but it won't get any email!
    Check the "Mail checking logs" in your ACP (under the vBulletin Mail System area). If there are no logs, then the cronjob probably isn't running. If there are logs, see if there are any errors in there. If it's checking the mail account fine and simply says there are no messages, check with a webmail to see if the catch-all account is even receiving mails. If the webmail shows that the account has mail stuck in it and vBMS isn't picking them up, but vBMS is saying it's checking the account alright and finding 0 messages, then you're likely connecting to the wrong account. By doing these steps, you should at least be able to figure out where the problem is occurring.

Install clicks, donations and HotM nominations are always welcome.

Show Your Support

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

Comments
  #222  
Old 05-07-2007, 06:39 AM
scan-pa scan-pa is offline
 
Join Date: May 2006
Location: Lebanon Co. Pa. USA
Posts: 189
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by maxicep View Post
Krofh ,when you will release mail system final version ?
He posted a reply to my post asking the same question, that he will work on this after his mid may exams are over with, and school is done.


Once this gets out of beta, it will be one heck of a add-on.
Reply With Quote
  #223  
Old 05-08-2007, 01:07 PM
ramchip ramchip is offline
 
Join Date: Mar 2007
Posts: 13
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Has anybody tried this mod on HostGator hosting package?
Reply With Quote
  #224  
Old 05-11-2007, 08:27 PM
Andyrew Andyrew is offline
 
Join Date: Aug 2005
Location: UK
Posts: 250
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I have this working ok, only thing i have a problem with is i can not change anything in user options.
When i untick a box and press save it come up with the box ticked again, so no way to turn of default settings.
Reply With Quote
  #225  
Old 05-13-2007, 04:35 AM
BWilliams BWilliams is offline
 
Join Date: Dec 2005
Location: Southern California
Posts: 29
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Got this installed and working. So far so good.

Question I have is how can I make the screen name the default alias? I don't want the users to choose.

Thanks
Reply With Quote
  #226  
Old 05-13-2007, 06:21 PM
Fungsten's Avatar
Fungsten Fungsten is offline
 
Join Date: Jul 2006
Posts: 1,131
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

What do I put in here?

Attachment 64273

I'm not asking for the exact information for my settings, but, what is the SMTP username? Is it the "Postmaster" account or the "Admin" account, etc.

What do I put in for the password? Is it the one for the Admin account? The "Postmaster" account?

Thanks in advance!!
Reply With Quote
  #227  
Old 05-14-2007, 06:33 AM
loonytune15's Avatar
loonytune15 loonytune15 is offline
 
Join Date: Mar 2003
Location: Loony Bin
Posts: 357
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I hope to see this hack as a final in the coming weeks

even an update to beta 2 would be good
Reply With Quote
  #228  
Old 05-15-2007, 06:02 PM
DaNIEL MeNTED DaNIEL MeNTED is offline
 
Join Date: Sep 2006
Posts: 152
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

One question - how does it automatically format usernames?

For ex. if someone is username do they get username@domain.com?

What if someone else is "user name"?
Reply With Quote
  #229  
Old 05-15-2007, 06:54 PM
DaNIEL MeNTED DaNIEL MeNTED is offline
 
Join Date: Sep 2006
Posts: 152
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by DaNIEL MeNTED View Post
One question - how does it automatically format usernames?

For ex. if someone is username do they get username@domain.com?

What if someone else is "user name"?
Installed on a test board -- I see that by default people's aliases are not defined. I would like to prevent people from changing their alias but I see that they still get to set their first alias ...

The only problem I have is I would like to always set people's email = their username.

Is there anyway to get it to do this for everyone on installation?

What about on registration?

I think I could probably write a plugin to do the registration part...

Maybe add a query on install to populate the alias field?
Reply With Quote
  #230  
Old 05-16-2007, 01:56 PM
DaNIEL MeNTED DaNIEL MeNTED is offline
 
Join Date: Sep 2006
Posts: 152
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

To answer my own question -

create a plugin - VBMS Add-Alias.

Hook - register_activate_start

Code -

PHP Code:
$count 1;
function 
str_split_php4($text$split 1)
{
    if (!
is_string($text)) return false;
    if (!
is_numeric($split) && $split 1) return false;
    
$len strlen($text);
    
$array = array();
    
$i 0;
    while (
$i $len)
    {
        
$key NULL;
        for (
$j 0$j $split$j += 1)
        { 
            
$key .= $text{$i};
            
$i += 1;    
        }
        
$array[] = $key;
    }
    return 
$array;
}

function 
make_alias($username)
{
$alias strtolower($username);
$alias str_replace(" ""_"$alias);
$holdarr str_split_php4($alias);
foreach (
$holdarr as $val) {
  if ((
ord($val) >= 48 AND ord($val) <= 57) OR (ord($val) >= 45 AND ord($val) <= 46) OR (ord($val) == 95) OR (ord($val) >=97 AND ord($val) <=122)) $final .= $val;
  }
return 
$final;
}

$newalias make_alias($vbulletin->userinfo['username']);

$fixedalias $newalias;

$aliascheck $vbulletin->db->query_first("SELECT * FROM " TABLE_PREFIX "user WHERE vbms_alias ='" $newalias "'");

while (
$aliascheck[vbms_alias]) {
  
$fixedalias $newalias $count;
  
$aliascheck $vbulletin->db->query_first("SELECT * FROM " TABLE_PREFIX "user WHERE vbms_alias ='" $fixedalias "'");
  
$count++;
}

$vbulletin->db->query_write("UPDATE " TABLE_PREFIX "user
                                SET vbms_alias = '" 
$fixedalias "'
                                WHERE userid = '" 
$vbulletin->userinfo['userid'] . "'
                                "
); 

This will take the alias, make it lowercase, strip anything other than A-Z and 1-9, replace spaces with underscores, then check the DB to make sure no one has the same alias.

If someone else has the same alias it will add a 1 at the end... check again... etc.

It will only add the alias to people who complete registration - so people can't register a user, autmatically get a alias, and spam the mailbox to waste space/load the server...

If anyone sees any problems... let me know.

Might be nice to add this to the release as an option that can be turned on/off.
Reply With Quote
  #231  
Old 05-16-2007, 11:02 PM
KipLarson KipLarson is offline
 
Join Date: Jul 2005
Posts: 191
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Just what I've been looking for (and for my board version as well!)

If you update this will you make it backwards compatible with other vB 3.6x versions?
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 12:01 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.04781 seconds
  • Memory Usage 2,348KB
  • 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
  • (6)bbcode_code
  • (1)bbcode_php
  • (2)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
  • (2)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