簡體   English   中英

Joomla郵件轉到垃圾郵件文件夾:發送HTML電子郵件時如何添加文本/純文本?

[英]Joomla mail goes to spam folder: how to add text/plain when sending HTML email?

運行Joomla 2.5.8網站,所有服務器生成的電子郵件都被標記為垃圾郵件(盡管只有gmail!)。

我在巨大的資源http://www.mail-tester.com上運行了測試,而我得到的唯一否定分數是(spamassassin測試):

-1.105      MIME_HTML_ONLY      Message only has text/html MIME parts
You should also include a text version of your message (text/plain)

我仔細研究了代碼,發現libraries / joomla / mail / mail.php沒有為Text設置AltBody。 我試過了:

public function setBody($content)
{
    [...]
    if (empty($this->AltBody))
        $this->AltBody =JMailHelper::cleanText( strip_tags( $content));

而且有效! (10/10在郵件測試儀上)。 但這肯定是丑陋的。

我的問題是:

  • 我們應該認為這是Joomla! 錯誤並歸檔嗎?
  • 是否有一個更干凈的解決方案而不侵入內核文件(可能是某些配置)?

否則,我將編寫一個插件來執行替代操作:這非常重要,因為我們正在丟失似乎無法在gmail中找到垃圾郵件文件夾的20%的客戶,而且我真的不覺得自己是核心黑客30個站點。

絕對是可以與CMS一起提交的錯誤。 系統應為您處理。 這是開始提交錯誤的方法: https : //github.com/joomla/joomla-cms/blob/master/CONTRIBUTING.md

此外,您可以編寫一個插件來為您處理其覆蓋,而不是像您所說的那樣入侵核心文件。 我整理了一個基礎插件,可讓您根據需要在此處覆蓋核心類: https : //gist.github.com/dongilbert/323​​7387

如您所見,沒有什么太復雜了。 我們首先確保我們在Joomla,否則退出。 然后按照Joomla命名約定定義類,並將我們的配置文件包含在類構造中。 配置文件是將類注冊到自動加載器的位置。

在配置文件中,我們定義OVERRIDES路徑,然后開始將類注冊到JLoader。 我喜歡使事情井井有條,因此我的覆蓋目錄反映了joomla根目錄的結構,僅包含要覆蓋的類的路徑。 意思是如果我想覆蓋JFormField,我將有一個像這樣的結構(包括覆蓋目錄):

overrides/libraries/joomla/form/field.php

然后在config.php中添加:

JLoader::register('JFormField', OVERRIDES.'/libraries/joomla/form/field.php', true);

您也可以使用它來覆蓋核心組件類。 我用它來覆蓋com_media中的視圖類,如下所示:

overrides/component/com_media/view/imageslist/view.html.php

然后將其添加到配置中:

JLoader::register('MediaViewImagesList', OVERRIDES.'/components/com_media/view/imageslist/view.html.php', true);

您可以從上面的gist鏈接下載插件。 准備安裝到您的Joomla網站。 首先上載它,然后在插件目錄中添加替代目錄。 如果要首先添加所有文件並進行上傳,請確保將以下內容添加到overrides.xml文件中。

<folder>overrides</folder>

謝謝你! 我在Joomla 3中注意到了同樣的問題。

無論如何我用一個簡單的方法解決了

$mailer = JFactory::getMailer();
(...)
$mailer->setBody($messagebody);
$mailer->AltBody =JMailHelper::cleanText( strip_tags( $messagebody));

無需編輯源代碼,我也不認為應該將其報告為錯誤(應該可以將它設置為更合適的AltBody)-但最好將其正確記錄下來,或者也可以使用setAltBody()方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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