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
Check E-mail Address Before Registration Details »»
Check E-mail Address Before Registration
Version: 1.00, by echamberlain echamberlain is offline
Developer Last Online: Mar 2017 Show Printable Version Email this Page

Category: Miscellaneous Hacks - Version: 3.6.5 Rating:
Released: 04-10-2007 Last Update: 04-10-2007 Installs: 265
Uses Plugins
 
No support by the author.

This mod checks that the user supplied e-mail address is a real address before allowing registration to continue.

Even though we use Verify Email address in Registration, I still get tired of cleaning up bad e-mail addresses.

This mod integrates with the user registration process and performs the following tasks:
  1. Syntax checking (configurable) to make sure what was entered is an e-mail address.
  2. Looks up the MX records for the e-mail address.
  3. Cycles through the mail servers by connecting to each mail server and tries to verify that the e-mail address is a valid address. The cycling stops as soon as a mail server returns a valid or invalid user.
Installation

Install the attached xml product file. The product is active at installation and most sites should run fine with the default settings.

If you run the default configuration, e-mail addresses will be rejected when:
  • Syntax doesn't look like an e-mail address
  • MX record or A record does not exist for the e-mail domain
  • A mail server reports that the e-mail address is invalid
If you run the default configuration, e-mail address will pass when:
  • Syntax looks like an e-mail address
  • MX record or A record exists for the e-mail domain
  • All mail servers timeout or a mail server reports that the e-mail address is valid.
Configuration

This mod is managed from the vBulletin Options -> User Registration Options page. The following options are added to the page:
  • Validate Registration E-mail Addresses - Enter a regular expression to use when validating e-mail addresses. Leave the field blank to disable validation. The recommendation is to use the default value.
  • Treat E-mail Address As Valid If All Mail Hosts Timeout - If all the mail hosts timeout, should the e-mail address be treated as valid?

    NOTE: Changing this to no will reject valid users when your hosting provider doesn't allow fsockopen calls or when the timeout value is too short. The SMTP RFC's allow for a connection request response wait time of up to minues, since this test is real-time with a waiting user, waiting minutes is impractical. Just because a host timesout doesn't mean the host is not there.
  • Mail Host Timeout Value (Seconds) - Length of time to wait when trying to open a session with a mail host.

    NOTE: Don't set this value too large, if a domain has more than one MX record, the user will have to wait for each connection attempt.
  • Does This Host Support fsockopen? - A PHP fsockopen call is used to try and connect to the remote mail servers. Some systems may not support or block these calls. With the value set to Yes, the connection attempts will timeout. GoDaddy's Shared Hosting is an example of a hosting provider that blocks outbound connection attempts.

    With this value set to no, the system will try to look up the MX records, but will not attempt to connect to each mail server.

Show Your Support

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

Comments
  #72  
Old 03-19-2008, 06:41 PM
deLi_kurT's Avatar
deLi_kurT deLi_kurT is offline
 
Join Date: Dec 2007
Location: izmir - TURKEY
Posts: 85
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks.
Reply With Quote
  #73  
Old 03-31-2008, 01:05 AM
AngelBlue AngelBlue is offline
 
Join Date: Jun 2007
Posts: 125
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

This is a good mod, however, it can lead to Yahoo rejecting mail from your forums if many of your users register with Yahoo email addresses.

To avoid this, disable the use of this mod on Yahoo-based email addresses, via replacing :
Code:
 if (!validate_email($vbulletin->GPC['email'])) {
   $userdata->error('os_email_notvalid');
 }
with :
Code:
if (!preg_match("/yahoo/i", $vbulletin->GPC['email'])) {
 if (!validate_email($vbulletin->GPC['email'])) {
   $userdata->error('os_email_notvalid');
 }
}
in the product file before install.
The search string is deliberately kept as "yahoo", and not "yahoo.com", to avoid cases of other possible domains (like "yahoo.fr" and "yahoomail.someotherdomain") getting past the check.
Reply With Quote
  #74  
Old 11-06-2008, 04:34 AM
FireFish's Avatar
FireFish FireFish is offline
 
Join Date: Jan 2006
Location: Yipppikayeh, Mofoh!!!
Posts: 106
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Just FYI; since I installed this, I'm averaging about 2-3 'Contact Us' messages a week from guests who are wanting to register with email accounts at like sbcglobal.net or other major domains. They complain that they can't due to an error regarding 'contacting their email server'.

Although I totally love the idea & am sure it works most of the time, I can't loose those members & therefore must disable this mod. v
Reply With Quote
  #75  
Old 11-20-2008, 08:07 PM
Twin_Turbo Twin_Turbo is offline
 
Join Date: Mar 2008
Posts: 30
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I just got word from a member with a cox email address that he gets this message:

"Please enter another e-mail address. We were unable to contact your
e-mail server and verify that your e-mail address exists. If you
continue to have registration problems, please contact us for
assistance."

Could it be because he is using opera or mozilla?
Reply With Quote
  #76  
Old 08-05-2011, 03:03 PM
laynespeers laynespeers is offline
 
Join Date: Mar 2011
Posts: 2
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Wow, thank you so much for this. The thing that I dislike about vBulletin is that it often has a lot of bots that will come on your forums and spam the living hell out of them. Atleast with a tool like this, it will prevent many of them from doing so. Not only that, but, if they do actually verify their email, then come and spam your website, you will know that their email is real. If this happens, its not very hard to spam them back.

Bottom line is, I love you. Haha.
Reply With Quote
  #77  
Old 08-05-2011, 03:27 PM
laynespeers laynespeers is offline
 
Join Date: Mar 2011
Posts: 2
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by FireFish View Post
Just FYI; since I installed this, I'm averaging about 2-3 'Contact Us' messages a week from guests who are wanting to register with email accounts at like sbcglobal.net or other major domains. They complain that they can't due to an error regarding 'contacting their email server'.

Although I totally love the idea & am sure it works most of the time, I can't loose those members & therefore must disable this mod. v
Quote:
Originally Posted by Twin_Turbo View Post
I just got word from a member with a cox email address that he gets this message:

"Please enter another e-mail address. We were unable to contact your
e-mail server and verify that your e-mail address exists. If you
continue to have registration problems, please contact us for
assistance."

Could it be because he is using opera or mozilla?
The post right above you was explaining how to get around get around the default restrictions with the email servers. Well, they showed you how to get around the yahoo email server. Here, I will explain how you can make acceptions for different email servers.

Whenever you are contacted by someone saying that they cannot access the website due to email restrictions, simple add that email server to the .xml script. Here, I will show you what I am trying to say.

Okay, so first things first. You are going to want to open your os_validate_email_1.0.xml file. Once the file is open to editable mode, search for the following:
Code:
if (!validate_email($vbulletin->GPC['email'])) {
   $userdata->error('os_email_notvalid');
}
Now that you have found the main method that verifies the email servers that the script is aloud to interact with, you are going to need to modify it just a little bit. The next thing that you are going to need to do is replace that code with the following:
Code:
if (!preg_match("/yahoo/i", (" $vbulletin->GPC['email'])) {
 if (!validate_email($vbulletin->GPC['email'])) {
   $userdata->error('os_email_notvalid');
 }
}
Okay, so before we replaced that code, this script could not work with yahoo email servers, if you would like more information on the reasoning for that, see post #.

Now, I am going to explain how you are to go about adding more email servers to the list. This is very simple, and you won't take long to figure it out. As and example, I am going to add sbcglobal to the list. Okay, inorder to add another email server to the list, you are going to want to paste the following code right after "/yahoo/i",:
Code:
"/sbcglobal/i",
Okay, once you have added that, your code should like something like:
Code:
if (!preg_match("/yahoo/i", "/sbcglobal/i", (" $vbulletin->GPC['email'])) {
 if (!validate_email($vbulletin->GPC['email'])) {
   $userdata->error('os_email_notvalid');
 }
}
So basically, when someone contacts you saying that they are unable to connect to your website with their email server, you will simply go into your script and add the email server. Also, do not add the domain extension when adding an email server, only add the main name of the email domain.

I am sorry if this doesn't work properly, I'm really not that great of a web programmer as I personally prefer to work with Java, but I thought I would speak up and help those in need .

Best Regards,
Layne
Reply With Quote
  #78  
Old 11-17-2012, 09:02 AM
Naijasite's Avatar
Naijasite Naijasite is offline
 
Join Date: Mar 2012
Posts: 281
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

its not working ...i enterd fake email as rolins575367899@yahoo.com and it allowed the registration on vb 4.
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 07:19 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.07342 seconds
  • Memory Usage 2,292KB
  • Queries Executed 24 (?)
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
  • (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
  • (2)pagenav_pagelink
  • (8)post_thanks_box
  • (8)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (8)post_thanks_postbit_info
  • (7)postbit
  • (8)postbit_onlinestatus
  • (8)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_postinfo_query
  • fetch_postinfo
  • 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