vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB4 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=252)
-   -   vBulletin 4 sends an e-mail even the input e-mail syntax is not valid e-mail (https://vborg.vbsupport.ru/showthread.php?t=329135)

postcd 01-23-2022 07:24 AM

vBulletin 4 sends an e-mail even the input e-mail syntax is not valid e-mail
 
Hello,
it appears that vBulletin 4.2.5 Alpha 2 sends an activation e-mail to newly registered user even the e-mail is wrong, like "FK@9711"
Please how to fix this inside the code?

I have found following in /includes/class_mail.php
Code:

        function send($force_send = false)
        {
                // No recipient, abort
                if (!$this->toemail)
                {
                        return false;
                }

                // Check debug settings
                if (!$force_send AND defined('DISABLE_MAIL'))
                {
                        if (is_string(DISABLE_MAIL))
                        {
                                // check for a recipient whitelist
                                if (strpos(DISABLE_MAIL, '@') !== false)
                                {
                                        // check if the address is allowed
                                        if (strpos(DISABLE_MAIL, $this->toemail) === false)
                                        {
                                                return false;
                                        }
                                }
                                else if (strpos(DISABLE_MAIL, '.log') !== false)
                                {
                                        // mail is only logged
                                        $this->log_email('DEBUG', DISABLE_MAIL);

                                        return true;
                                }
                                else
                                {
                                        // recipient not in the whitelist and not logging
                                        return false;
                                }
                        }
                        else
                        {
                                // DISABLE_MAIL defined but isn't a string so just disable
                                        if (strpos(DISABLE_MAIL, $this->toemail) === false)
                                        {
                                                return false;
                                        }
                                }
                                else if (strpos(DISABLE_MAIL, '.log') !== false)
                                {
                                        // mail is only logged
                                        $this->log_email('DEBUG', DISABLE_MAIL);

                                        return true;
                                }
                                else
                                {
                                        // recipient not in the whitelist and not logging
                                        return false;
                                }
                        }
                        else
                        {
                                // DISABLE_MAIL defined but isn't a string so just disable
                                return false;
                        }
                }

                // Send the mail
                return $this->exec_send();
        }

Maybe it is correct code to modify?

Here they mention following:

Code:

if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
    // invalid emailaddress
}

if (!checkdnsrr($domain, 'MX')) {
    // domain is not valid
}

MX code may delay things so is questionable. Maybe better to validate on registration form?

/register.php contains:
Code:

        // check for matching email addresses
        if ($vbulletin->GPC['email'] != $vbulletin->GPC['emailconfirm'])
        {
                $userdata->error('emailmismatch');
        }

can i append after that:
Code:

        // check for valid email addresses
        if (!filter_var($vbulletin->GPC['email'], FILTER_VALIDATE_EMAIL))
        {
                $userdata->error('to be valid e-mail');
        }

When i do it, reg. form says "Could not find phrase 'to be valid e-mail'."
After using valid e-mail then no warning appear. Is this sufficing, or do You have idea how to fix it please?

z3r0 01-23-2022 08:31 AM

A quick look at that section in vb4.2.5 (final) class_mail.php shows a lot less code, I haven't the time to check through and see what the differences are but a good start would be update from Alpha to the final release version.

postcd 06-08-2022 05:20 AM

I will not update now. How to fix it please?

RichieBoy67 06-08-2022 10:02 PM

Have you edited any of the core vbulletin files?

--------------- Added [DATE]1654809352[/DATE] at [TIME]1654809352[/TIME] ---------------

Quote:

Originally Posted by postcd (Post 2608611)
I will not update now. How to fix it please?

Back up your site first and then reupload those files fresh from vbulletin.


All times are GMT. The time now is 04:38 AM.

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.01056 seconds
  • Memory Usage 1,739KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (4)bbcode_code_printable
  • (1)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (4)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.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/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.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
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete