簡體   English   中英

cpanel 主機上的 Architechting webmail 應用程序:如何綁定實際的電子郵件服務?

[英]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 的方式的一個示例

如果有人可以幫助我正確看待這一點,那就太好了。

關於這個的一些答案:

要在共享主機上推出您自己的webmail,cPanel API、 curlfopen和第 3 方電子郵件應用程序 API 將是起點。

cPanel可能不完全支持這一點,但它們確實有 api, UAPI最有可能用於某些基本場景。 https://documentation.cpanel.net/display/SDK/UAPI+Functions+-+Email%3A%3Alist_pops

但是,Afterligic 的WebMail Lite包含一個很有前途的解決方案,具有PHPRESTJavaScript 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 '&lt;pre&gt;';
                    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 '&lt;/pre&gt;';
                }
                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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM