proxiedmail / laravel-receive-email
Laravel 通过 ProxiedMail 库接收电子邮件,允许创建代理电子邮件并通过 Webhook 或 Rest API 接收电子邮件。
Requires
- php: ^7.4 || ^8.0
- laravel/framework: ^5.3 || ^6.0 || ^7.0 || ^8.0
- proxiedmail/php-client: ^0.6.0
README
ProxiedMail 👷♀️ 是一个用于创建代理电子邮件和接收 Webhook 或简单地浏览电子邮件列表的简单包。您可以在 https://github.com/proxied-mail/proxiedmail-php-client 找到基本 PHP 库。
欢迎您查看文档。
什么是 ProxiedMail?
ProxiedMail 是一款将电子邮件体验提升到新水平的工具,因为它基于“隐私优先”的概念,每次使用独特的电子邮件,使其成为第二密码,同时也让您对通信有更多控制。此外,它还允许您在几秒钟内切换到另一个电子邮件提供商。因为我们有这样的系统,所以我们还旨在将更多功能带入使用电子邮件进行开发的体验。
功能
🛠 使用 ProxiedMail 域名(例如 abc@proxiedmail.com、abcd@pxdmail.com、abcde@pxdmail.net)创建无限代理电子邮件
🛠 设置转发电子邮件或禁用转发
🛠 设置回调到您的 URL
🛠 在接收到的电子邮件端点浏览接收到的电子邮件
🛠 设置自定义域名。您也可以使用您的域名做所有这些。
🛠 域名到域名转发。以防万一您需要,我们可以通过掩码转发电子邮件,如 *@domainhostedatproxiedmail.com -> *someotherdomain.com。在这种情况下,第一个域的 MX 应指向 ProxiedMail,第二个域应通过 TXT 记录进行验证。
📦 安装
通过 composer
$ composer require proxiedmail/laravel-receive-email
设置服务提供者
此包提供服务提供者的自动发现
如果 Laravel 包自动发现被禁用,请手动将服务提供者添加到 /config/app.php。有一些服务提供者您必须添加
\ProxiedMail\Client\Providers\ProxiedMailServiceProvider::class
发布客户端配置
php artisan vendor:publish --tag=proxiedmail
配置 ProxiedMail 客户端
将您的 ProxiedMail API 令牌放入 /config/proxiedmail.php。您可以在 ProxiedMail API 设置 中找到此令牌。
return [ 'apiToken' => 'YOUR API TOKEN', 'host' => 'https://proxiedmail.com', ];
🚀 互动示例
此示例演示了创建代理电子邮件、浏览接收到的电子邮件以及通过 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); } } }
管理 UI
您可以在 ProxiedMail 上创建并找到 UI,以管理您的域名、电子邮件和 Webhook。
🔧 贡献
请随意 fork 并发送 Pull Requests。此项目遵循 语义化版本 2 和 PSR-2。
📄 许可证
GPL3。有关更多信息,请参阅 许可证文件。
问题
如有任何问题,请联系 laraclient@pxdmail.com
额外
请查阅我们博客中的文章如何在Laravel中接收邮件。如果您对使用PHP接收邮件感兴趣,请使用纯PHP库。
文章:如何在PHP中接收邮件