:envelope: E-Mail Address Validator (syntax, dns, trash, typo)

Overview

Build Status codecov.io Codacy Badge Latest Stable Version Total Downloads License Donate to this project using Paypal Donate to this project using Patreon

✉️ E-Mail Address Validator for PHP

Warning

The best way to validate an e-mail address is still to send a duplicate opt-in-mail, when the user clicks on the link, it was a valid e-mail address!

Installation

The recommended installation way is through Composer.

$ composer require voku/email-check

Usage:

Example 1:

$emailCheck = EmailCheck::isValid("[email protected]");

// true

Example 2: (check for example-domain)

$emailCheck = EmailCheck::isValid("[email protected]", true);

// false

Example 3: (check for typo in domain)

$emailCheck = EmailCheck::isValid("[email protected]", false, true);

// false

Example 4: (check for temporary-domain)

$emailCheck = EmailCheck::isValid("[email protected]", false, false, true);

// false

Unit Test:

  1. Composer is a prerequisite for running the tests.
composer install
  1. The tests can be executed by running this command from the root directory:
./vendor/bin/phpunit

Support

For support and donations please visit Github | Issues | PayPal | Patreon.

For status updates and release announcements please visit Releases | Twitter | Patreon.

For professional support please contact me.

Thanks

  • Thanks to GitHub (Microsoft) for hosting the code and a good infrastructure including Issues-Managment, etc.
  • Thanks to IntelliJ as they make the best IDEs for PHP and they gave me an open source license for PhpStorm!
  • Thanks to Travis CI for being the most awesome, easiest continous integration tool out there!
  • Thanks to StyleCI for the simple but powerfull code style check.
  • Thanks to PHPStan && Psalm for relly great Static analysis tools and for discover bugs in the code!
Comments
  • Update phpunit/phpunit requirement from ~6.0 to ~6.0 || ~7.0

    Update phpunit/phpunit requirement from ~6.0 to ~6.0 || ~7.0

    Updates the requirements on phpunit/phpunit to permit the latest version.

    Changelog

    Sourced from phpunit/phpunit's changelog.

    7.5.1 - 2018-12-12

    Fixed

    • Fixed #3441: Call to undefined method DataProviderTestSuite::usesDataProvider()

    [7.5.0] - 2018-12-07

    Added

    • Implemented #3340: Added assertEqualsCanonicalizing(), assertEqualsIgnoringCase(), assertEqualsWithDelta(), assertNotEqualsCanonicalizing(), assertNotEqualsIgnoringCase(), and assertNotEqualsWithDelta() as alternatives to using assertEquals() and assertNotEquals() with the $delta, $canonicalize, or $ignoreCase parameters
    • Implemented #3368: Added assertIsArray(), assertIsBool(), assertIsFloat(), assertIsInt(), assertIsNumeric(), assertIsObject(), assertIsResource(), assertIsString(), assertIsScalar(), assertIsCallable(), assertIsIterable(), assertIsNotArray(), assertIsNotBool(), assertIsNotFloat(), assertIsNotInt(), assertIsNotNumeric(), assertIsNotObject(), assertIsNotResource(), assertIsNotString(), assertIsNotScalar(), assertIsNotCallable(), assertIsNotIterable() as alternatives to assertInternalType() and assertNotInternalType()
    • Implemented #3391: Added a TestHook that fires after each test, regardless of result
    • Implemented #3417: Refinements related to test suite sorting and TestDox result printer
    • Implemented #3422: Added assertStringContainsString(), assertStringContainsStringIgnoringCase(), assertStringNotContainsString(), and assertStringNotContainsStringIgnoringCase()

    Deprecated

    • The methods assertInternalType() and assertNotInternalType() are now deprecated. There is no behavioral change in this version of PHPUnit. Using these methods will trigger a deprecation warning in PHPUnit 8 and in PHPUnit 9 these methods will be removed.
    • The methods assertAttributeContains(), assertAttributeNotContains(), assertAttributeContainsOnly(), assertAttributeNotContainsOnly(), assertAttributeCount(), assertAttributeNotCount(), assertAttributeEquals(), assertAttributeNotEquals(), assertAttributeEmpty(), assertAttributeNotEmpty(), assertAttributeGreaterThan(), assertAttributeGreaterThanOrEqual(), assertAttributeLessThan(), assertAttributeLessThanOrEqual(), assertAttributeSame(), assertAttributeNotSame(), assertAttributeInstanceOf(), assertAttributeNotInstanceOf(), assertAttributeInternalType(), assertAttributeNotInternalType(), attributeEqualTo(), readAttribute(), getStaticAttribute(), and getObjectAttribute() are now deprecated. There is no behavioral change in this version of PHPUnit. Using these methods will trigger a deprecation warning in PHPUnit 8 and in PHPUnit 9 these methods will be removed.
    • The optional parameters $delta, $maxDepth, $canonicalize, and $ignoreCase of assertEquals() and assertNotEquals() are now deprecated. There is no behavioral change in this version of PHPUnit. Using these parameters will trigger a deprecation warning in PHPUnit 8 and in PHPUnit 9 these parameters will be removed.
    • The annotations [**expectedException**](https://github.com/expectedException), [**expectedExceptionCode**](https://github.com/expectedExceptionCode), [**expectedExceptionMessage**](https://github.com/expectedExceptionMessage), and [**expectedExceptionMessageRegExp**](https://github.com/expectedExceptionMessageRegExp) are now deprecated. There is no behavioral change in this version of PHPUnit. Using these annotations will trigger a deprecation warning in PHPUnit 8 and in PHPUnit 9 these annotations will be removed.
    • Using the methods assertContains() and assertNotContains() on string haystacks is now deprecated. There is no behavioral change in this version of PHPUnit. Using these methods on string haystacks will trigger a deprecation warning in PHPUnit 8 and in PHPUnit 9 these methods cannot be used on on string haystacks anymore.
    • The optional parameters $ignoreCase, $checkForObjectIdentity, and $checkForNonObjectIdentity of assertContains() and assertNotContains() are now deprecated. There is no behavioral change in this version of PHPUnit. Using these parameters will trigger a deprecation warning in PHPUnit 8 and in PHPUnit 9 these parameters will be removed.

    Fixed

    • Fixed #3428: TestSuite setup failures are not logged correctly
    • Fixed #3429: Inefficient loop in getHookMethods()
    • Fixed #3437: JUnit logger skips PHPT tests

    [7.5.0]: https://github.com/sebastianbergmann/phpunit/compare/7.4.5...7.5.0

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Note: This repo was added to Dependabot recently, so you'll receive a maximum of 5 PRs for your first few update runs. Once an update run creates fewer than 5 PRs we'll remove that limit.

    You can always request more updates by clicking Bump now in your Dependabot dashboard.

    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot ignore this [patch|minor|major] version will close this PR and stop Dependabot creating any more for this minor/major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Automerge options (never/patch/minor, and dev/runtime dependencies)
    • Pull request limits (per update run and/or open at any time)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)

    Finally, you can contact us by mentioning @dependabot.


    This change is Reviewable

    dependencies 
    opened by dependabot-preview[bot] 6
  • DNS check is now working

    DNS check is now working

    It also stops working if checkdnsrr is not callable instead of silently failing.

    The isDnsError() will always return a bool, never null. So we can check this like the other flags in isValid()


    This change is Reviewable

    opened by anhofmann 5
  • Update phpunit/phpunit requirement from ~6.0 || ~7.0 to ~6.0 || ~7.0 || ~8.0

    Update phpunit/phpunit requirement from ~6.0 || ~7.0 to ~6.0 || ~7.0 || ~8.0

    Updates the requirements on phpunit/phpunit to permit the latest version.

    Changelog

    Sourced from phpunit/phpunit's changelog.

    8.0.1 - 2019-02-03

    Fixed

    • Fixed #3509: Process Isolation does not work with phpunit.phar

    [8.0.0] - 2019-02-01

    Changed

    • Implemented #3060: Cleanup PHPUnit\Framework\Constraint\Constraint
    • Implemented #3133: Enable dependency resolution by default
    • Implemented #3236: Define which parts of PHPUnit are covered by the backward compatibility promise
    • Implemented #3244: Enable result cache by default
    • Implemented #3288: The void_return fixer of php-cs-fixer is now in effect
    • Implemented #3439: Improve colorization of TestDox output
    • Implemented #3444: Consider data provider that provides data with duplicate keys to be invalid
    • Implemented #3467: Code location hints for [**requires**](https://github.com/requires) annotations as well as --SKIPIF--, --EXPECT--, --EXPECTF--, --EXPECTREGEX--, and --{SECTION}_EXTERNAL-- sections of PHPT tests
    • Implemented #3481: Improved --help output

    Deprecated

    • Implemented #3332: Deprecate annotation(s) for expecting exceptions
    • Implemented #3338: Deprecate assertions (and helper methods) that operate on (non-public) attributes
    • Implemented #3341: Deprecate optional parameters of assertEquals() and assertNotEquals()
    • Implemented #3369: Deprecate assertInternalType() and assertNotInternalType()
    • Implemented #3388: Deprecate the TestListener interface
    • Implemented #3425: Deprecate optional parameters of assertContains() and assertNotContains() as well as using these methods with string haystacks
    • Implemented #3494: Deprecate assertArraySubset()

    Removed

    • Implemented #2762: Drop support for PHP 7.1
    • Implemented #3123: Remove PHPUnit_Framework_MockObject_MockObject

    [8.0.0]: https://github.com/sebastianbergmann/phpunit/compare/7.5...8.0.0

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot ignore this [patch|minor|major] version will close this PR and stop Dependabot creating any more for this minor/major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Automerge options (never/patch/minor, and dev/runtime dependencies)
    • Pull request limits (per update run and/or open at any time)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)

    Finally, you can contact us by mentioning @dependabot.


    This change is Reviewable

    dependencies 
    opened by dependabot-preview[bot] 3
  • Configure Renovate

    Configure Renovate

    Mend Renovate

    Welcome to Renovate! This is an onboarding PR to help you understand and configure settings before regular Pull Requests begin.

    🚦 To activate Renovate, merge this Pull Request. To disable Renovate, simply close this Pull Request unmerged.


    Detected Package Files

    • composer.json (composer)

    Configuration Summary

    Based on the default config's presets, Renovate will:

    • Start dependency updates only once this onboarding PR is merged
    • Enable Renovate Dependency Dashboard creation
    • If semantic commits detected, use semantic commit type fix for dependencies and chore for all others
    • Ignore node_modules, bower_components, vendor and various test/tests directories
    • Autodetect whether to pin dependencies or maintain ranges
    • Rate limit PR creation to a maximum of two per hour
    • Limit to maximum 10 open PRs at any time
    • Group known monorepo packages together
    • Use curated list of recommended non-monorepo package groupings
    • A collection of workarounds for known problems with packages

    🔡 Would you like to change the way Renovate is upgrading your dependencies? Simply edit the renovate.json in this branch with your custom config and the list of Pull Requests in the "What to Expect" section below will be updated the next time Renovate runs.


    What to Expect

    With your current configuration, Renovate will create 2 Pull Requests:

    Pin dependencies
    Update dependency phpunit/phpunit to v9
    • Schedule: ["at any time"]
    • Branch name: renovate/phpunit-phpunit-9.x
    • Merge into: master
    • Upgrade phpunit/phpunit to 9.5.21

    ❓ Got questions? Check out Renovate's Docs, particularly the Getting Started section. If you need any further assistance then you can also request help here.


    This PR has been generated by Mend Renovate. View repository job log here.


    This change is Reviewable

    opened by renovate[bot] 2
  • Pin dependencies - autoclosed

    Pin dependencies - autoclosed

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | fzaninotto/faker | require-dev | pin | ~1.7 -> 1.9.2 | | phpunit/phpunit (source) | require-dev | pin | ~6.0 \|\| ~7.0 -> 7.5.20 |

    Add the preset :preserveSemverRanges to your config if you don't want to pin your dependencies.


    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

    👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


    • [ ] If you want to rebase/retry this PR, click this checkbox.

    This PR has been generated by Mend Renovate. View repository job log here.


    This change is Reviewable

    opened by renovate[bot] 1
  • DNS error check only MX Record ?

    DNS error check only MX Record ?

    Wouldn't it be a viable case for a valid email with a correct MX record, but no A-record? Email will be received that way.

    It's an edge case, but wouldn't it be more correct to change return !\checkdnsrr($domain . '.', 'MX') || !\checkdnsrr($domain, 'A'); to return !\checkdnsrr($domain . '.', 'MX');

    in the code here ?

    opened by pbatroff 1
  • Copyright notice?

    Copyright notice?

    It looks like you have taken Michael Rushton's regex pattern as used in PHP, but you forgot to add thecopyright notice?

     * Michael's regex carries this copyright:
    

    523 * 524 * Copyright © Michael Rushton 2009-10 525 * http://squiloople.com/ 526 * Feel free to use and redistribute this code. But please keep this copyright notice.

    opened by PeeHaa 1
  • Scrutinizer Auto-Fixes

    Scrutinizer Auto-Fixes

    @voku requested this pull request.

    It consists of patches automatically generated for this project on Scrutinizer: https://scrutinizer-ci.com/g/voku/email-check/

    Review on Reviewable

    opened by scrutinizer-auto-fixer 0
  • [Insight] User specific files should not appear in .gitignore - in .gitignore, line 3

    [Insight] User specific files should not appear in .gitignore - in .gitignore, line 3

    in .gitignore, line 3

    .idea is user-specific and should not appear in a project .gitignore. Consider adding it to the user global .gitignore instead.

    /nbproject/private/
    
    .idea
    
    # composer
    vendor
    composer.lock
    
    

    Posted from SensioLabsInsight

    opened by voku 0
  • Remove miam.kd2.org

    Remove miam.kd2.org

    Hi,

    please remove miam.kd2.org from your "domainsTemporary.php" file as it is our internal email server, and is not publicly accessible, and does not provide temporary emails either.

    Thank you.

    opened by bohwaz 0
  • Returns valid when Null MX record is set

    Returns valid when Null MX record is set

    What is this feature about (expected vs actual behaviour)?

    RFC 7505 specifies "null MX" for when a domain explicitly does not support email.

    Even if a null MX record is set this check will still return that the address is valid.

    How can I reproduce it?

    $emailCheck = EmailCheck::isValid("[email protected]", false, false, false,  true);
    
    // expected false
    // got true
    

    Does it take minutes, hours or days to fix?

    In isDnsError instead of using checkdnsrr it could use dns_get_record and then check the priority.

    Any additional information?

    opened by bmcculley 0
  • Dependency Dashboard

    Dependency Dashboard

    This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

    Open

    These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

    Detected dependencies

    composer
    composer.json
    • php >=7.0.0
    • symfony/polyfill-intl-idn ~1.10
    • phpunit/phpunit ~6.0 || ~7.0
    • fzaninotto/faker ~1.7

    • [ ] Check this box to trigger a request for Renovate to run again on this repository
    opened by renovate[bot] 0
  • Update dependency phpunit/phpunit to v9

    Update dependency phpunit/phpunit to v9

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | phpunit/phpunit (source) | require-dev | major | ~6.0 \|\| ~7.0 -> ~6.0 \|\| ~7.0 \|\| ~9.0 |


    Release Notes

    sebastianbergmann/phpunit

    v9.5.26

    Compare Source

    v9.5.25

    Compare Source

    v9.5.24

    Compare Source

    v9.5.23

    Compare Source

    v9.5.22

    Compare Source

    v9.5.21

    Compare Source

    v9.5.20

    Compare Source

    v9.5.19

    Compare Source

    v9.5.18

    Compare Source

    v9.5.17

    Compare Source

    v9.5.16

    Compare Source

    v9.5.14

    Compare Source

    v9.5.13

    Compare Source

    v9.5.12

    Compare Source

    v9.5.11

    Compare Source

    v9.5.10

    Compare Source

    v9.5.9

    Compare Source

    v9.5.8

    Compare Source

    v9.5.7

    Compare Source

    v9.5.6

    Compare Source

    v9.5.5

    Compare Source

    v9.5.4

    Compare Source

    v9.5.3

    Compare Source

    v9.5.2

    Compare Source

    v9.5.1

    Compare Source

    v9.5.0

    Compare Source

    v9.4.4

    Compare Source

    v9.4.3

    Compare Source

    v9.4.2

    Compare Source

    v9.4.1

    Compare Source

    v9.4.0

    Compare Source

    v9.3.11

    Compare Source

    v9.3.10

    Compare Source

    v9.3.9

    Compare Source

    v9.3.8

    Compare Source

    v9.3.7

    Compare Source

    v9.3.6

    Compare Source

    v9.3.5

    Compare Source

    v9.3.4

    Compare Source

    v9.3.3

    Compare Source

    v9.3.2

    Compare Source

    v9.3.1

    Compare Source

    v9.3.0

    Compare Source

    v9.2.6

    Compare Source

    v9.2.5

    Compare Source

    v9.2.4

    Compare Source

    v9.2.3

    Compare Source

    v9.2.2

    Compare Source

    v9.2.1

    Compare Source

    v9.2.0

    Compare Source

    v9.1.5

    Compare Source

    v9.1.4

    Compare Source

    v9.1.3

    Compare Source

    v9.1.2

    Compare Source

    v9.1.1

    Compare Source

    v9.1.0

    Compare Source

    v9.0.2

    Compare Source

    v9.0.1

    Compare Source

    v9.0.0

    Compare Source

    v8.5.31

    Compare Source

    v8.5.30

    Compare Source

    v8.5.29

    Compare Source

    v8.5.28

    Compare Source

    v8.5.27

    Compare Source

    v8.5.26

    Compare Source

    v8.5.25

    Compare Source

    v8.5.24

    Compare Source

    v8.5.23

    Compare Source

    v8.5.22

    Compare Source

    v8.5.21

    Compare Source

    v8.5.20

    Compare Source

    v8.5.19

    Compare Source

    v8.5.18

    Compare Source

    v8.5.17

    Compare Source

    v8.5.16

    Compare Source

    v8.5.15

    Compare Source

    v8.5.14

    Compare Source

    v8.5.13

    Compare Source

    v8.5.12

    Compare Source

    v8.5.11

    Compare Source

    v8.5.10

    Compare Source

    v8.5.9

    Compare Source

    v8.5.8

    Compare Source

    v8.5.7

    Compare Source

    v8.5.6

    Compare Source

    v8.5.5

    Compare Source

    v8.5.4

    Compare Source

    v8.5.3

    Compare Source

    v8.5.2

    Compare Source

    v8.5.1

    Compare Source

    v8.5.0

    Compare Source

    v8.4.3

    Compare Source

    v8.4.2

    Compare Source

    v8.4.1

    Compare Source

    v8.4.0

    Compare Source

    v8.3.5

    Compare Source

    v8.3.4

    Compare Source

    v8.3.3

    Compare Source

    v8.3.2

    Compare Source

    v8.3.1

    Compare Source

    v8.3.0

    Compare Source

    v8.2.5

    Compare Source

    v8.2.4

    Compare Source

    v8.2.3

    Compare Source

    v8.2.2

    Compare Source

    v8.2.1

    Compare Source

    v8.2.0

    Compare Source

    v8.1.6

    Compare Source

    v8.1.5

    Compare Source

    v8.1.4

    Compare Source

    v8.1.3

    Compare Source

    v8.1.2

    Compare Source

    v8.1.1

    Compare Source

    v8.1.0

    Compare Source

    v8.0.6

    Compare Source

    v8.0.5

    Compare Source

    v8.0.4

    Compare Source

    v8.0.3

    Compare Source

    v8.0.2

    Compare Source

    v8.0.1

    Compare Source

    v8.0.0

    Compare Source


    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.


    This change is Reviewable

    opened by renovate[bot] 2
  • Make Punycode conversion optional

    Make Punycode conversion optional

    What is this feature about (expected vs actual behaviour)?

    Currently, the isValid callback always converts the local and domain part into Punycode.

    However, lots of environments don't support Punycode and we'd like to validate email addresses such that special characters like German umlauts or other accented character would be recognized as invalid.

    I'll be posting a PR in a minute to fix this.

    Does it take minutes, hours or days to fix?

    Minutes.

    opened by jurgenhaas 4
  • Upgrade to GitHub-native Dependabot

    Upgrade to GitHub-native Dependabot

    Dependabot Preview will be shut down on August 3rd, 2021. In order to keep getting Dependabot updates, please merge this PR and migrate to GitHub-native Dependabot before then.

    Dependabot has been fully integrated into GitHub, so you no longer have to install and manage a separate app. This pull request migrates your configuration from Dependabot.com to a config file, using the new syntax. When merged, we'll swap out dependabot-preview (me) for a new dependabot app, and you'll be all set!

    With this change, you'll now use the Dependabot page in GitHub, rather than the Dependabot dashboard, to monitor your version updates, and you'll configure Dependabot through the new config file rather than a UI.

    If you've got any questions or feedback for us, please let us know by creating an issue in the dependabot/dependabot-core repository.

    Learn more about migrating to GitHub-native Dependabot

    Please note that regular @dependabot commands do not work on this pull request.


    This change is Reviewable

    dependencies 
    opened by dependabot-preview[bot] 2
Owner
Lars Moelleken
Webdeveloper & Sysadmin | egrep '#php|#js|#html|#css|#sass'
Lars Moelleken
Disposable email address validator for Laravel

Laravel Disposable Email Adds a validator to Laravel for checking whether a given email address isn't originating from disposable email services such

null 332 Dec 29, 2022
A mail driver to quickly preview mail

A mail driver to quickly preview mail This package can display a small overlay whenever a mail is sent. The overlay contains a link to the mail that w

Spatie 1k Jan 4, 2023
Bounce Mail Handler for PHP | This is a "reboot" of PHPMailer-BMH from WorxWare.

PHP 7.0+ Support Composer & PSR-0 Support PHPUnit testing via Travis CI (TODO: more tests needed) PHP-Quality testing via SensioLabsInsight (TODO: mor

Lars Moelleken 43 Jan 7, 2023
Mail sending module for Mezzio and Laminas MVC with support for file attachment and template email composition

This module provides an easy and flexible way to send emails from Mezzio and Laminas MVC applications (formerly known as Zend Expressive and Zend MVC). It allows you to pre-configure emails and transports, and then send those emails at runtime.

null 82 Jan 16, 2022
Laravel Mail Credentials switcher for Budget Laravel Applications

Laravel Mail Switcher Laravel Mail Credentials Switcher is a library which helps you to: Manage your Mail Service Credentials Configure the Laravel's

(Seth) Phat Tran 34 Dec 24, 2022
PostfixAdmin - web based virtual user administration interface for Postfix mail servers

PostfixAdmin An open source, web based interface for managing domains/mailboxes/aliases etc on a Postfix based mail server.

PostfixAdmin 755 Jan 3, 2023
Laravel Mail Catcher Driver

Laravel Mail Catcher Driver This package include a new mailbase driver which will catch all the sent emails and save it to the database. It then expos

Tauqeer Liaqat 94 Aug 30, 2022
Provides a clean and simple way to configure the WordPress-bundled PHPMailer library, allowing you to quickly get started sending mail through a local or cloud based service of your choice

WP PHPMailer provides a clean and simple way to configure the WordPress-bundled PHPMailer library, allowing you to quickly get started sending mail through a local or cloud based service of your choice.

Itineris Limited 61 Dec 6, 2022
💌 Mail app for Nextcloud

Nextcloud Mail ?? A mail app for Nextcloud Why is this so awesome? ?? Integration with other Nextcloud apps! Currently Contacts, Calendar & Files – mo

Nextcloud 684 Dec 26, 2022
Crud PHP 8 com Form E-mail

Crud com PHP 8 PDO Login - Cadastro de Usuários - Edição - Deleção - Adição | Formulário envio de e-mail Para rodar o Crud é preciso instalar um servi

Isaias Oliveira 4 Nov 16, 2021
Mail Web is a Laravel package which catches emails locally for debugging

Mail Web is a Laravel package which catches emails locally for debugging Installation Use the package manager composer to install Mail Web. composer r

Appoly 64 Dec 24, 2022
Simple mail sending by PHPMailer and Create your local system.

Simple mail sending by PHPMailer and Create your local system. Send mail zero of cost and also send Attachment like Photo, pdf and multiple files. You should be create a login and verify two steps authentication like OTP, verifications ?? link. PHPMailer make your dreams project eassy and simple also free of cost.

SUSHIL KUMBHAR 2 Dec 8, 2021
A testing package for intercepting mail sent from Laravel

Laravel Mail Intercept A testing package for intercepting mail sent from Laravel This testing suite intercepts Laravel Mail just before they are sent

Kirschbaum Development Group, LLC 91 Oct 18, 2022
Mail application developed with Symfony 5

Fakey-Mail Mail application developed with Symfony 5! Check out the requirements for info on how to launch the app. Check out the basic functionality

Mauro 2 Jun 21, 2022
✉️ Laravel Mail Explorer

Mailbook Mailbook is a Laravel package that lets you easily inspect your mails without having to actually trigger it in your application. View demo In

Max Hoogenbosch 88 Dec 29, 2022
Mail Api for fetch or send mails

flux-mail-api Mail Api for fetch or send mails Installation Native Download RUN (mkdir -p /%path%/libs/flux-mail-api && cd /%path%/libs/flux-mail-api

null 2 Dec 12, 2022
Mandrill mail driver for Laravel for version 6+

Laravel Mandrill Driver This package re-enables Mandrill driver functionality using the Mail facade in Laravel 6+. To install the package in your proj

Eng Hasan Hajjar 2 Sep 30, 2022
This package adds support for verifying new email addresses: when a user updates its email address, it won't replace the old one until the new one is verified.

Laravel Verify New Email Laravel supports verifying email addresses out of the box. This package adds support for verifying new email addresses. When

Protone Media 300 Dec 30, 2022
Email address value object.

Email address value object Installation Via Composer: $ composer require nepada/email-address Usage This package provides two implementations of email

null 5 Jan 1, 2022