MXLogin
Improve your registration/signup pages with links to user's email provider inbox.
Don't just tell users to check their Gmail - give them a link., (*1)
, (*2)
How does it work?
MXLogin is checking MX records for the given email address and maps them to one of supported email providers.
This way it can recognize your organization is using Google Mail even if your email address doesn't end with gmail.com. />
Besides login urls, you can make sure your users didn't do a typo (gimail.com instead of gmail.com) by catching errors., (*3)
Supported email providers
- Gmail
- Yahoo
- Hotmail
- Outlook
- AOL
- Mail.com
- Mail.ru
- Mailinator
- T-Com.hr
- Iskon.hr
Need more?, (*4)
How to install (Composer)
composer require atomasevic/mxlogin
or add to your project's composer.json, (*5)
"require": {
"atomasevic/mxlogin": "~1.0.1"
}
How to use
<?php
use atomasevic\MXLogin\MXLogin;
$email = 'somebody@gmail.com';
$mxLogin = new MXLogin();
$loginData = $mxLogin->search($email);
Search method returns array if it has provider for the given email address:, (*6)
print_r($loginData);
Array (
[name] => Gmail
[code] => atmx-gmail
[loginUrl] => https://mail.google.com
)
If there is no match in our providers, it returns null
., (*7)
Throw new
There are few errors thrown by MXLogin you'll need to catch in your application., (*8)
No valid provider classes found in providers folder. (code = 101)
This error is thrown when MXProviderManager can't find any valid MXProvider class inside providers dir.
This should never happen, unless you delete or rename everything in providers dir., (*9)
This error is thrown when you pass invalid string to search(). It doesn't do anything smarter than check if
format is user@domain.tld`. It doesn't check mail servers for valid recipient., (*10)
Email domain does not exist. (code = 202)
This error is thrown when email domain doesn't resolve to any mxHosts. You could catch user typos with this error.
, (*11)
Contribute
Contribution is more than welcome :)
Fork it, make it better, run tests (codecept run
) and create pull request., (*12)
Questions, problems?
Please open issue, I'll do my best to answer ASAP., (*13)
This repo is better because of this people :heart:
Thank you...
Marko Kruljac (@krukru)
Slaven Vincetic (@slaven-ii)
Tony Mrakovcic (@tonymrakovcic)
, (*14)
License
MIT License, (*15)