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
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
  #122  
Old 03-17-2007, 09:37 AM
succo succo is offline
 
Join Date: Sep 2003
Posts: 32
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by thincom2000 View Post
I also noticed that when HTML is allowed, VBMS still shows the plain-text version of the message. Apparently, in both the VBMS_READ template AND I believe vbms_read.php, it checks a vBulletin setting that doesn't exist:

In template VBMS_READ:
Code:
$vboptions['vbms_htmlaction']
In file vbms_read.php:
PHP Code:
$vbulletin->options['vbms_htmlaction'
Should be replaced with:
Code:
$vboptions['vbms_allowhtml']
PHP Code:
$vbulletin->options['vbms_allowhtml'
respectively.
yes, but i think that more modifications are needed, as 'vbms_allowhtml' is a boolean, so how can it be equal to VBMS_HTMLACTION_NONE?
Reply With Quote
  #123  
Old 03-17-2007, 08:07 PM
thincom2000 thincom2000 is offline
 
Join Date: May 2006
Location: Bronx, NY
Posts: 1,205
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Well perhaps, I just took out the == VBMS_HTMLACTION_NONE at the same time I changed the variables because they were boolean anyway. So I was unaware that VBMS_HTMLACTION_NONE was not boolean as well.
Reply With Quote
  #124  
Old 03-18-2007, 10:09 AM
Luky Luky is offline
 
Join Date: Oct 2006
Location: Australia
Posts: 595
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Incredibly amazing.
Reply With Quote
  #125  
Old 03-19-2007, 05:58 AM
Krofh's Avatar
Krofh Krofh is offline
 
Join Date: Aug 2005
Posts: 132
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by succo
btw, my forum is vba-wrapped, so the newmail template breaks, as there is an headincluded javascript...
I guess I don't fully understand what is going wrong; if vBa is trying to put something in headinclude all the time (I assume with a global_start hook), wouldn't that automatically put it into the vBMS? Part of it is that I've never much worked with vBa, so I'm not exactly sure how the wrapping thing works... if you wanna send me the stuff you changed and such though, that'd be cool, and I'll see what I can do about figuring out the working it in.
Quote:
Originally Posted by abroad
Thank you Krofh. Would you recommend to wait a bit until this product is tested a bit more and just use it on a test server at the moment?
Tbh, I would, especially if you've got a fairly large site. I think it's mostly stable, and I've gotten through a majority of the bugs so far, but it's still got a little ways to go.
Quote:
Originally Posted by succo
another little request... would it be possible to use vbulletin_ajax_namesugg.js when choosing recipients?
Awesome idea, I'll try to get that in if I can. It'd be cool if I could get it to merge your address book with the suggested list too; I'll have to look into that.
Quote:
Originally Posted by succo
the html portion of the message wasn't closed with the correct boundary, so the receiving client thought that the whole attachment was part of the html portion of the mail

to solve this issue, edit includes/vbms_class_mail_message.php, search for
Mehh, perhaps something's screwy on my server, because I added that conditional to make it work properly for me; attachments weren't working right otherwise. I guess I'll have to do a bit more serious testing with that bit to get it all working properly. Thanks for the feedback on it though.
Quote:
Originally Posted by scan-pa
Everything works on my test site except outgoing emails.

I recv emails fine, but get this error on sending replies or compose new emails.

There was an error sending your mail message. This site's host may be experiencing technical difficulties with its mail server at the moment. Please inform the administrator that the following error has occured:

there is no error given.
Does the mail() function work normally to begin with? Try going to the "vBMS Control Panel" in the ACP and test sending emails (at the bottom) with both vbmail() and mail() and see what's happening.
Quote:
Originally Posted by thincom2000
I also noticed that when HTML is allowed, VBMS still shows the plain-text version of the message. Apparently, in both the VBMS_READ template AND I believe vbms_read.php, it checks a vBulletin setting that doesn't exist:
Quote:
Originally Posted by succo
yes, but i think that more modifications are needed, as 'vbms_allowhtml' is a boolean, so how can it be equal to VBMS_HTMLACTION_NONE?
Ahh, this seems to be a leftover from when the old version started getting ported and didn't get finished. Got it changed now, will be proper in the next update. It's true, it's a boolean option now; it seems that there used to be different actions for handling HTML messages before though (automatically deleting them, removing the content and flagging them, converting them to bbCode [this is now the default "no" to allowhtml], or leaving as-is [this is the "yes" in allowhtml]). So yeah, feel free to take the VBMS_HTMLACTION_NONE bit out entirely of both of those and convert them both to allowhtml. Also btw, thanks especially to both of you for finding (and correcting) bugs so far, it's really been a big help (as well as everyone else who's been contributing here).

I just got back in town late last night, so hopefully I should be able to get another update out sometime this week. Keep the bugs coming
Reply With Quote
  #126  
Old 03-19-2007, 06:16 AM
succo succo is offline
 
Join Date: Sep 2003
Posts: 32
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Krofh
I guess I don't fully understand what is going wrong; if vBa is trying to put something in headinclude all the time (I assume with a global_start hook), wouldn't that automatically put it into the vBMS?
no, as far as i can see, vba uses only the body portion of any template and adds it to the central column of it, so anything in the head portion is simply ignored... i saw this when vba-wrapping other products using whole page templates, like vbagooglemaps... i had to insert the head scripts in a 'new' myproduct_headinclude template and parse it in the headinclude template with a little plugin which looks for the scriptname and if it's, say, vbms_new adds the vbms_headinclude part to headinclude
Quote:
Originally Posted by Krofh
Mehh, perhaps something's screwy on my server, because I added that conditional to make it work properly for me; attachments weren't working right otherwise. I guess I'll have to do a bit more serious testing with that bit to get it all working properly. Thanks for the feedback though on it though.
eh, i had to telnet to the mailserver and retr a message to see what was going on, as i'm not so accostumed to the mail syntax
anyway, once done, it was quite clear that the closing boundaries for the html part was missing
Reply With Quote
  #127  
Old 03-19-2007, 07:27 PM
chilllax chilllax is offline
 
Join Date: Nov 2005
Posts: 58
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I can send and receive emails wonderfully. But for some reason the trailer message isn't attached to the sent emails. Do you have any idea why?

By the way, thank you so much for putting the time in to deliver this amazing hack
;-)
Reply With Quote
  #128  
Old 03-19-2007, 09:36 PM
d8tabyte's Avatar
d8tabyte d8tabyte is offline
 
Join Date: Nov 2005
Location: Michigan
Posts: 239
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Installed and working great, thanks!
Reply With Quote
  #129  
Old 03-20-2007, 05:19 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 Krofh View Post
Does the mail() function work normally to begin with? Try going to the "vBMS Control Panel" in the ACP and test sending emails (at the bottom) with both vbmail() and mail() and see what's happening.
Both of those tests worked, Email sent out were fine.
Reply With Quote
  #130  
Old 03-20-2007, 04:58 PM
JawadIT JawadIT is offline
 
Join Date: Jan 2006
Posts: 16
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

great hack
and its installed:up:
Reply With Quote
  #131  
Old 03-21-2007, 02:08 AM
mindcry mindcry is offline
 
Join Date: Jun 2005
Posts: 50
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

One thing that I noticed which would probably be a good thing to add. If you are creating an alias you can have spaces and other illegal characters. Considering some users some of us have that could be bad, for example if someone made their name firstname@lastname@domain.com or firstname lastname@domain.com.
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 10:50 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.05878 seconds
  • Memory Usage 2,345KB
  • 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
  • (8)bbcode_code
  • (2)bbcode_php
  • (11)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