Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Library to send e-mails over different transports and protocols (like SMTP and IMAP) using immutable messages and streams. Also includes SMTP server.

License

NotificationsYou must be signed in to change notification settings

genkgo/mail

Repository files navigation

Latest Versionworkflow code check

While analyzing what mail library to use when refactoring a code base, we discovered that the available ones are mostlylegacy libraries. Some do not use namespaces and every library we encountered was merely a collection of scalarproperty bags than objects using encapsulation. Although we used these libs with joy in the past, they do not meet currentquality standards. So, we built a new and better library according to modern programming principles.

Use this if you want to send e-mails over different transports and protocols using immutable messages and streams.

Send message quick and easy

useGenkgo\Mail;$message = (newMail\MessageBodyCollection('<html><body><p>Hello World</p></body></html>'))    ->withAttachment(newMail\Mime\FileAttachment('/order1.pdf',newMail\Header\ContentType('application/pdf')))    ->createMessage()    ->withHeader(newMail\Header\Subject('Hello World'))    ->withHeader(Mail\Header\From::fromEmailAddress('from@example.com'))    ->withHeader(Mail\Header\To::fromSingleRecipient('to@example.com','name'))    ->withHeader(Mail\Header\Cc::fromSingleRecipient('cc@example.com','name'));$transport =newMail\Transport\SmtpTransport(Mail\Protocol\Smtp\ClientFactory::fromString('smtp://user:pass@host/')->newClient(),Mail\Transport\EnvelopeFactory::useExtractedHeader());$transport->send($message);

Install using composer

$ composer require genkgo/mail

Features

  • Use SMTP or mail() to send messages
  • Use IMAPv4 to read messages from your mailbox (no extension required)
  • Create replies and forward messages, including quoting of original message
  • Queue messages when transport fails
  • Automatically connects and reconnects after interval to SMTP server
  • Automatically generate alternative text for formatted messages
  • Optimal encoded headers, so no excessive (Q/B) encoded headers
  • Optimal encoded multipart messages
  • Only streams and connections are mutable
  • Messages and actors are immutable
  • Value objects protect against invalid states
  • Streams make sure the library has a low memory burden
  • Many objects but still easy API
  • 90%+ test coverage
  • Uses highest PHPStan detection level
  • Only uses TLS < 1.2 if not otherwise possible
  • Discourages SSL
  • DKIM signed message
  • Security is highly prioritized
  • SMTP server for testing purposes
  • Great RFC compliance
  • Cast messages to valid string source
  • Library has no external dependencies (but uses intl extension)
  • Only supportsPHP versions that are not EOL

Upcoming features

  • Encrypted and signed messages

Not planned

The following features are not planned for development by the owners, but could become part of the library wheninitiative is taken by the community.

  • POP Support
  • Mailbox abstraction layer

Documentation

RFC-compliance

This library tends to be as compliant with e-mail RFCs as possible. It should be compliant with the following RFCs.

Credits

This library was not able to exist withoutZend/MailandPHPMailer.

About

Library to send e-mails over different transports and protocols (like SMTP and IMAP) using immutable messages and streams. Also includes SMTP server.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp