![](/img/trans.png)
[英]How do I host Laravel and Inertiajs (React) app in cPanel?
[英]Architechting webmail app on cpanel host: How do I go about tying in the actual email service?
我正在為最終用戶構建類似於 Gmail 的Webmail SPA 。 此應用程序將托管在 cPanel 共享主機(LAMP 堆棧)上。 否則,最終用戶沒有 cpanel 電子郵件訪問權限。 我的應用程序將成為他們訪問這些電子郵件帳戶的門戶。
如果重要的話,我最好是具有 LAMP 經驗的節點開發人員,所以我願意接受任何廣泛的建議。 請注意,通常我只是使用 smtp 來彈跳東西。 我會直接做這個 Imap 嗎? 我只是想在架構層面上知道我需要訪問或尋找什么服務,也許還有一些例子的方向。
也許一個可以描述我如何實現它的線框、流程圖或句子就足夠了。 我可以找到技術,我只需要一張路線圖。
這是一個 RHEL6
$ uname -a
Linux 2.6.32-604.30.3.lve1.3.63.el6.x86_64 #1 SMP Sun Sep 27 06:34:10 EDT 2015 x86_64 x86_64 x86_64 GNU/Linux
基於我能夠思考這個問題的唯一方式的一些問題:
什么協議通常訪問電子郵件(用戶?)我會得到一些東西,也許是來自系統環境變量的內部郵件命令訪問,或者 PATH 也許? 我會 ping 用戶列表嗎,我的意思是應用程序需要連接到郵件服務器的哪些信息,以及我將從什么協議中獲取這些信息? 我認為這是我的障礙。
我想第一件事是在發布期間,它進行身份驗證,身份驗證后會發生什么,什么協議,我將在何處/什么基礎上做出該決定,以及之后如何拉入電子郵件列表? 我猜這只是一個 IMAP 請求。 這就是我所需要的嗎? 例如 php mail()
或nodemailer
?
此外,我似乎無法想出合適的術語來獲得任何有意義的谷歌搜索結果,我願意接受搜索查詢幫助作為替代方案,但不確定我正在尋找什么技術。
編輯:
在一些研究中,我發現了以下內容;
一些最終產生一些結果的搜索詞
webmail interfacing php
(或節點)webmail single page application node
(或 php)看起來這可能是節點應用程序連接到 imap 的方式的一個示例
https://github.com/cozy-labs/emails/blob/master/server/imap/pool.coffee
我相信郵件工具在這里https://www.npmjs.com/package/nodeutil
如果有人可以幫助我正確看待這一點,那就太好了。
關於這個的一些答案:
要在共享主機上推出您自己的webmail,cPanel API、 curl
、 fopen
和第 3 方電子郵件應用程序 API 將是起點。
cPanel
可能不完全支持這一點,但它們確實有 api, UAPI
最有可能用於某些基本場景。 https://documentation.cpanel.net/display/SDK/UAPI+Functions+-+Email%3A%3Alist_pops
但是,Afterligic 的WebMail Lite
包含一個很有前途的解決方案,具有PHP
、 REST
和JavaScript
API
。 http://www.afterlogic.org/docs/webmail-lite/integration-and-development
讀取消息的PHP
示例看起來可能就是這里的這個示例
<?php
include_once __DIR__.'/../libraries/afterlogic/api.php';
if (class_exists('CApi') && CApi::IsValid())
{
// data for logging into account
$sEmail = 'user@domain.com';
$sPassword = 'PassWord';
$sFolder = 'INBOX';
$iOffset = 0;
$iLimit = 5;
$oCollection = null;
try
{
$oApiIntegratorManager = CApi::Manager('integrator');
$oAccount = $oApiIntegratorManager->LoginToAccount($sEmail, $sPassword);
if ($oAccount)
{
$oApiMailManager = CApi::Manager('mail');
$oCollection = $oApiMailManager->getMessageList($oAccount, $sFolder, $iOffset, $iLimit);
if ($oCollection)
{
echo '<b>'.$oAccount->Email.':</b><br />';
echo '<pre>';
echo 'Folder: '.$sFolder."\n";
echo 'Count: '.$oCollection->MessageCount."\n"; // $oCollection->MessageResultCount
echo 'Unread: '.$oCollection->MessageUnseenCount."\n";
echo 'List: '."\n";
$oCollection->ForeachList(function ($oMessage) {
$oFrom = $oMessage->From();
echo "\t".htmlentities($oMessage->Uid().') '.$oMessage->Subject().($oFrom ? ' ('.$oFrom->ToString().')' : ''))."\n";
});
echo '</pre>';
}
else
{
echo $oApiMailManager->GetLastErrorMessage();
}
}
else
{
echo $oApiIntegratorManager->GetLastErrorMessage();
}
}
catch (Exception $oException)
{
echo $oException->getMessage();
}
}
else
{
echo 'AfterLogic API isn\'t available';
}
還有關於滾動自己的一些其他想法:這里有一篇文章闡明了如何查看帳戶,使用php
如何通過 PHP 在 Cpanel 中創建電子郵件帳戶?
還有一個要列出如何使用 cPanel API 訪問電子郵件帳戶列表?
構建了一個 cpanel 類來提供一種創建和轉發的方法,並且可能是解決方案開始時的最佳示例。 http://sajjadhossain.com/tag/cpanel-class/從這里獲取資源,在該主題上進行了大量測試http://www.zubrag.com/scripts/cpanel-create-email-account.php
轉發電子郵件,以防萬一將它們轉移到另一個臨時帳戶https://www.a2hosting.com/kb/cpanel/cpanel-mail-features/forwarding-incoming-e-mail-messages-to-腳本文件
然后是松鼠郵件或 cpanel 支持的其他兩個郵件應用程序的選項:可能將其中之一變成門戶。 這是一種對松鼠郵件進行身份驗證的方法,例如http://squirrelmail.org/plugins_category.php?category_id=6
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.