簡體   English   中英

Mautic 無法與 TLS 連接。 SMTP

[英]Mautic unable to connect with TLS. SMTP

我被困在這一點上。 我正在開發一個項目,使用 Docker 容器在 AWS 的 Elastic Beanstalk 上自動部署和配置 Mautic 實例。 一切似乎都井井有條,但是當我單擊 Mautic 配置的電子郵件設置中的“測試連接”時,我總是收到“無法使用 TLS 加密連接”。

如果我不使用任何加密,我就可以正常連接並發送電子郵件。 所以這不是阻塞的端口問題或錯誤的憑據。

我已經確保 OpenSSL 已安裝並在 PHP 中運行。

Mautic 正在使用 swiftmailer 發送電子郵件,所以我進入了他們的代碼,並復制了他們用來測試的確切代碼片段。 我將它插入到這樣的測試腳本中,然后運行它。

<?php
require_once __DIR__ . '/vendor/autoload.php';
try {
$mailer = new \Swift_SmtpTransport('...', 587, 'tls');
$mailer->setUsername('...');
$mailer->setPassword('...');

$mailer->start();
die('hello');
}
catch(Exception $e){
echo $e->getMessage();
}

這很好用。 我什至添加了發送電子郵件所需的其余代碼,它進入我的郵箱就好了。 此腳本是從 AWS Elastic Beanstalk 服務器上的 docker 容器內部執行的。

那么我錯過了什么? 為什么在通過 mautic 測試時這讓我失望?

測試腳本還使用 Mautic 實例正在使用的相同vendor文件夾,所以我知道它使用的是完全相同版本的 SwiftMailer。

謝謝

==

更新 1

從 PHP 5.6 降級到 PHP 5.5 似乎解決了這個問題,但我不喜歡為了解決問題而降級 PHP 的想法。 我從這個問題中得到了想法

所以如果有人有更好的解決方案,我仍然開放。 我確實注意到這個問題,有人指出了 5.6 的解決方案,但它涉及編輯供應商文件,這對我不起作用,因為我試圖自動化所有這些。

我花了半天時間來了解如何與 Mautic 2.16.2 和 PHP 7.1 連接。

問題是 SwiftMailer (STREAM_CRYPTO_METHOD_TLS_CLIENT) 中定義的 TLS 版本常量。 為了向后兼容,它指向 TLS 的 1.0 v.。 您可以更改STREAM_CRYPTO_METHOD_TLS_CLIENTSTREAM_CRYPTO_METHOD_TLSv1_2_CLIENT (或其他版本)在/mautic/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/StreamBuffer.php。

有關更多信息,請查看此 SwiftMailer 問題

我有一個類似的問題。 最近解決了兩件事:首先,更新到 2.0.0 版本,然后我發現(雖然不確定是否正確)cron 作業必須在我的主機(godaddy 服務器)上以非常特定的順序排列,沒有最后的代碼很糟糕,像這樣:

mautic:campaigns:trigger mautic:campaigns:rebuild mautic:iplookup:download mautic:emails:send mautic:email:fetch mautic:segments:update

暫無
暫無

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

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