proxiedmail/laravel-receive-email
Composer 安装命令:
composer require proxiedmail/laravel-receive-email
包简介
Laravel Receive Email via ProxiedMail library allows creating proxy-emails and receiving emails via webhooks, Rest API.
README 文档
README
ProxiedMail 👷♀️ is a simple package for the base library to create proxy emails and receive webhooks or simply browse email list. You can find the base PHP library at https://github.com/proxied-mail/proxiedmail-php-client
You're welcome to visit the docs.
What is the ProxiedMail?
ProxiedMail is a tool that brings the email experience to a new level because it was built around the privacy first concept that enhances using a unique email each time which makes it a second password, but also allows you more control over your correspondence. Additionally, it gives you the advantage of moving to another email provider just in a few seconds. Because we have this kind of system we also aim to bring more into the experience of development using emails.
Features
🛠 Creating endless proxy emails with one of ProxiedMail domains (i.e abc@proxiedmail.com, abcd@pxdmail.com, abcde@pxdmail.net)
🛠 Setting up forwarding email or disabling forwarding
🛠 Setting up a callback to your URL
🛠 Browsing received emails on the received emails endpoint
🛠 Setting up custom domains. You can do everything using your domain as well.
🛠 Domain-to-domain forwarding. Just in case you need it we can forward emails by mask, like *@domainhostedatproxiedmail.com -> *someotherdomain.com. In this case, the MX of the first domain should be pointed to ProxiedMail and the second domain should be verified by TXT record.
📦 Install
Via composer
$ composer require proxiedmail/laravel-receive-email
Setting service provider
This package provide auto-discovery for service provider
If Laravel package auto-discovery is disabled, add service providers manually to /config/app.php. There are service provider you must add:
\ProxiedMail\Client\Providers\ProxiedMailServiceProvider::class
Publish client configuration:
php artisan vendor:publish --tag=proxiedmail
Configure ProxiedMail client:
Put your ProxiedMail API token in /config/proxiedmail.php. You can find this token in ProxiedMail API Settings.
return [ 'apiToken' => 'YOUR API TOKEN', 'host' => 'https://proxiedmail.com', ];
🚀 Live example
This example demonstrates create proxy emails, browse received emails and receive emails via webhook.
use ProxiedMail\Client\Bridge\ProxiedMailClient; use ProxiedMail\Client\Facades\ApiFacade; class ExampleController { public function browseReceivedEmails(ProxiedMailClient $proxiedMailClient) { /** * @var ApiFacade $api */ $api = $proxiedMailClient->getClient(); $proxyEmail = $api->createProxyEmail( [], null, null, null, true ); // while (true) with 100 seconds limit foreach (range(0, 180) as $non) { echo "PROXY-EMAIL: " . $proxyEmail->getProxyAddress() . "\n"; echo "Time limit is 3 mins \n"; echo "Send the email to this proxy-email to get email payload printed here \n"; //checking webhook receiver $receivedEmails = $api->getReceivedEmailsLinksByProxyEmailId($proxyEmail->getId())->getReceivedEmailLinks(); echo "Amount of received emails: " . count($receivedEmails) . "\n"; foreach ($receivedEmails as $receivedEmail) { echo "Have received email: \n"; var_dump($receivedEmail); echo "\n"; } echo "\n"; sleep(1); } } public function receiveEmailViaWebhook(ProxiedMailClient $proxiedMailClient) { /** * @var ApiFacade $api */ $api = $proxiedMailClient->getClient(); $wh = $api->createWebhook(); //creating webhook-receiver $proxyEmail = $api->createProxyEmail( [], null, $wh->getCallUrl() //specifying webhook url ); // while (true) with 100 seconds limit foreach (range(0, 100) as $non) { echo "PROXY-EMAIL: " . $proxyEmail->getProxyAddress() . "\n"; echo "Send the email to this proxy-email to get email payload printed here"; //checking webhook receiver $whStatus = $api->statusWebhook($wh->getId()); echo "Webhook STATUS: \n"; echo "Received: " . ($whStatus->isReceived() ? 'yes' : 'no') . "\n"; //printing webhook status //printing payload if received if ($whStatus->isReceived()) { echo "WEBHOOK PAYLOAD: \n"; echo json_encode($whStatus->getPayload()); break; } echo "\n"; sleep(1); } } }
Managing UI
You can create find the UI on ProxiedMail to manage your domains, emails, and webhooks.
🔧 Contributing
Please feel free to fork and sending Pull Requests. This project follows Semantic Versioning 2 and PSR-2.
📄 License
GPL3. Please see License File for more information.
Questions
For any questions please contact laraclient@pxdmail.com
Bonus
Also please check out the article how to receive emails in Laravel in our blog. If you're interested in receiving emails in PHP use the library for pure PHP.
Article: how to receive emails in PHP
proxiedmail/laravel-receive-email 适用场景与选型建议
proxiedmail/laravel-receive-email 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 5 次下载、GitHub Stars 达 15, 最近一次更新时间为 2024 年 02 月 25 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 proxiedmail/laravel-receive-email 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 proxiedmail/laravel-receive-email 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 5
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 15
- 点击次数: 19
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: LGPL-3.0-or-later
- 更新时间: 2024-02-25