PHPackages                             netherphp/email - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Mail &amp; Notifications](/categories/mail)
4. /
5. netherphp/email

ActiveLibrary[Mail &amp; Notifications](/categories/mail)

netherphp/email
===============

An email library.

02.1kPHP

Since Jun 16Pushed 11mo ago1 watchersCompare

[ Source](https://github.com/netherphp/email)[ Packagist](https://packagist.org/packages/netherphp/email)[ RSS](/packages/netherphp-email/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

NetherPHP / Email
=================

[](#netherphp--email)

This library tries to make sending email less insane again now since everyone is blocking what makes `mail()` work. For example, how DigitalOcean has a partnership with SendGrid that they totally are pretending isn't a circle jerk.

Supported Services
------------------

[](#supported-services)

- SendGrid (you can get 100/day for free, resets at midnight UTC)
- Mailjet (you can get 200/day for free, reset unknown their dash is meh.)
- An SMTP server.

Configuration
-------------

[](#configuration)

```
use Nether\Email;

($Config)
->Set(Email\Library::ConfSendGridKey, 'SENDGRID_API_KEY')
->Set(Email\Library::ConfMailjetPublicKey, 'MAILJET_PUB_KEY')
->Set(Email\Library::ConfMailjetPrivateKey, 'MAILJET_PRIV_KEY')
->Set(Email\Library::ConfServerHost, 'SMTP_HOSTNAME')
->Set(Email\Library::ConfServerPort, SMTP_PORT_NUM)
->Set(Email\Library::ConfServerUsername, 'SMTP_USERNAME')
->Set(Email\Library::ConfServerPassword, 'SMTP_PASSWORD')
->Set(Email\Library::ConfOutboundVia, OUTBOUND_VIA_CONST_INT)
->Set(Email\Library::ConfOutboundReplyTo, 'EMAIL_ADDRESS')
->Set(Email\Library::ConfOutboundFrom, 'EMAIL_ADDRESS')
->Set(Email\Library::ConfOutboundName, 'EMAIL_FRIENDLY_NAME')
->Set(Email\Library::ConfOutboundSubject, 'EMAIL_DEFAULT_SUBJECTLINE');

// Email\Outbound::ViaSMTP     = 1
// Email\Outbound::ViaSendGrid = 2
// Email\Outbound::ViaMailjet  = 3
```

SMTP Gotchas
------------

[](#smtp-gotchas)

### Office 365

[](#office-365)

If your goal is to use your Office 365 SMTP as of right now it will work but you will have a hard time. You need to find four different disconnected dashboards. I have provided some steps here but because Microsoft chances are none of it will still work a year from now. Their online services should be legally required to register as a crime scene.

- First you need a user account that can be logged into. But you don't want to log in as that user yet because you need to do a lot of MS Admin first.
- Second you need to enable SMTP Authentication in the Admin Admin. Click a user, Mail tab, manage mail apps, check SMTP Auth.

- Third you need to FORCE multi-factor auth for that user.

- Fourth you need to go into Azure for some reason even though you probably are not using a single god damn Azure service, go to the Azure Active Directory, Properties, tiny Manage Security Defaults link, and turn off Security Defaults or else you cannot even create the SMTP auth you need later.

- Fifth you need to go back to the Second, click the user, and click Sign out of all sessions. If you were doing this to your admin account there is a good chance you won't be able to log into anything Microsoft related for a few minutes with most of the admin panels dying and redirecting showing you straight JSON error output because that is how Enterprise does it.
- Sixth you need to go back to the Second, log in as that user you just forced out so that you are once again staring at the admin. Then go to the top right dropdown of the session and click View Account, then Security Info.

- Seventh you need to create a new sign in method, choose "App Password" in the dropdown, and that is what you will use as the SMTP password. If you do not have "App Password" in that drop down you need to repeat this process over and over until you do.

###  Health Score

20

—

LowBetter than 14% of packages

Maintenance38

Infrequent updates — may be unmaintained

Popularity18

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity14

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/b64ee49e86efa67a7de4afdc42c2686460d1e46ac7eac7e6ccfa6407ec7d979a?d=identicon)[bobmagicii](/maintainers/bobmagicii)

---

Top Contributors

[![bobmagicii](https://avatars.githubusercontent.com/u/881944?v=4)](https://github.com/bobmagicii "bobmagicii (23 commits)")

### Embed Badge

![Health badge](/badges/netherphp-email/health.svg)

```
[![Health](https://phpackages.com/badges/netherphp-email/health.svg)](https://phpackages.com/packages/netherphp-email)
```

###  Alternatives

[minishlink/web-push

Web Push library for PHP

1.9k12.0M53](/packages/minishlink-web-push)[laravel-notification-channels/twilio

Provides Twilio notification channel for Laravel

2587.7M12](/packages/laravel-notification-channels-twilio)[spatie/url-signer

Generate a url with an expiration date and signature to prevent unauthorized access

4422.3M16](/packages/spatie-url-signer)[mattketmo/email-checker

Throwaway email detection library

2742.0M5](/packages/mattketmo-email-checker)[laravel-notification-channels/discord

Laravel notification driver for Discord.

2371.3M11](/packages/laravel-notification-channels-discord)[eduardokum/laravel-mail-auto-embed

Library for embed images in emails automatically

1702.0M5](/packages/eduardokum-laravel-mail-auto-embed)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
