Osticket: 电子邮件发送问题。

创建于 2015-10-06  ·  78评论  ·  资料来源: osTicket/osTicket

无法登录。检查 SMTP 设置。

通过 SMTP 发送电子邮件
身份验证失败 [SMTP: STARTTLS failed (code: 220, response: 2.0.0 Ready to start TLS)]

[deprecated] Email bug

最有用的评论

尝试将端口 465 用于 SMTP 并在服务器条目之前添加“ssl://”:

smtp

所有78条评论

osTicket 的版本?
您的邮件服务器未通过您的凭据。

1.9.12

我正在使用 gmail 并且获取工作正常,只是发送有问题。 我将 osTicket 从旧的 Windows 服务器移到了新的服务器,问题仅出现在新服务器上。

我似乎记得其他人提到 php 5.6 有一个错误,你正在运行什么版本?

5.6

我应该尝试删除 5.6 并安装 5.5

我先试试。

有效。 谢谢

我认为我们应该保持开放并努力解决 PHP 5.6 上的问题。 随着它的使用越来越广泛,这个问题将成为一个更大的问题

我在 PHP 5.6 @ linux 主机上没有 SMTP 问题。 看起来这是 Windows 特定的问题。

只是为了记住。 我使用的是 Windows Server 2008 R2 64 位。 目前,我在此服务器上运行 3 个不同版本的 PHP 5.4、5.5 和 5.6,并且不同的网站使用不同的版本,因为某些网络应用程序在一个版本的 PHP 上存在问题而不是另一个版本。 虽然这可能是应用程序问题,但也可能是 PHP 5.6 for Windows 的问题。

@greezybacon这听起来与#2604 相同。 我相信我已经将问题缩小到这个http://php.net/manual/en/migration56.openssl.php

有人有机会用develop-next分支的提示再次测试吗? SMTP 库已升级,我想知道新版本是否与此问题有关。

不确定其他人,但我们在实时环境中使用 osticket,并且还使用 eticket 应用程序,该应用程序要求我们仅使用兼容版本。

真挚地,

尼古拉斯·鲁贝尔

从我的 iPhone 6 Plus 发送

2015 年 10 月 20 日上午 7:45,Jared Hancock通知@github.com 写道:

有没有人有机会用 develop-next 分支的提示再次测试? SMTP 库已升级,我想知道新版本是否与此问题有关。


直接回复此邮件或在 GitHub 上查看。

我使用升级的 SMTP 库(Net_SMTP v1.7.1)并且没有任何问题。

你用的是哪个版本的php?

真挚地,

尼古拉斯·鲁贝尔

从我的 iPhone 6 Plus 发送

年10月20,2015年,在上午09点34分,infectormp [email protected]写道:

我使用升级的 SMTP 库(Net_SMTP v1.7.1)并且没有任何问题。


直接回复此邮件或在 GitHub 上查看。

我使用 5.6.14 和 openssl 1.02d

@infectormp您能否确认您使用的是带有 PHP 5.6 的 Windows 并且您在升级到 SMTP 1.7.1 之前遇到了问题?

@greezybacon抱歉,我看到这是与 Windows 相关的错误。 我没有在我的服务器环境中使用 Windows 并且无法验证问题。

我们计划在本周末进行维护。 我将尝试启动一个重复的虚拟服务器机器并对其进行测试。

真挚地,

尼古拉斯·鲁贝尔

从我的 iPhone 6 Plus 发送

2015 年 10 月 20 日上午 11:20,infectormp [email protected]写道:

@greezybacon抱歉,我看到这是与 Windows 相关的错误。 我没有在我的服务器环境中使用 Windows 并且无法验证问题。


直接回复此邮件或在 GitHub 上查看。

@greezybacon我有一个带有 php 5.6.14 的 Windows 环境,我收到authentication failure [SMTP: STARTTLS failed (code: 220, response: 2.0.0 SMTP server ready)]作为错误消息。 如果我使用 php 5.5.28 它工作正常。

我使用升级的 SMTP 库(Net_SMTP v1.7.1)并且没有任何问题。

那么这与手头的问题完全无关?

@greezybacon正如我之前所说,我认为这与 php 代码http://php.net/manual/en/migration56.openssl.php 中所做的更改有关

PHP 现在需要对等验证,我尝试了很多方法,但不知道如何在我的 Windows 系统上设置它。

这似乎不仅仅是一个 Windows 问题。 当我切换到 php 5.6 时,我的一些 osticket 1.9.12 实例遇到了类似的问题。

它们运行在带有 debian 压缩的托管服务器上。 使用的 SMTP 端口是 587。首先我没有注意到,因为在这种情况下,osticket 似乎有一种解决方法,而是通过 php 邮件程序发送电子邮件。

在 osticket 的系统日志中有很多这样的错误:
SMTP:从服务器收到无效响应代码(代码:550,响应:不允许中继)

当我再次尝试保存邮件服务器凭据时,gui 中出现此错误:
身份验证失败 [SMTP:STARTTLS 失败(代码:220,响应:TLS 继续)]

切换回 php 5.5 解决了这个问题。

禁用对等验证似乎也解决了问题(使用 php 5.6):

https://github.com/pear/Net_SMTP/issues/14

此问题也出现在 osticket 1.10(最新提示)中。

@mfelber
不,不适合我。
所以我现在也意识到了这个问题。 安静的晚了,但很远。
我们也可以很好地接收/获取电子邮件并在域中发送。 但不是。

我还使用 PHP 5.6 和 STMP/587 进行身份验证。

很高兴看到一个词,因为他们在这里没有帮助。
我不确定降级是否有意义,因为 1.10 很接近,与 PHP7 相同。

干杯!

@ Hannibal226在我的情况下,解决方法是替换

$this->_socket_options =$socket_options;

$this->_socket_options = array('ssl' => array('verify_peer_name' => false));

在 /include/pear/Net/SMTP.php 工作正常。

但是我从其他人那里听说这种解决方法对他也没有帮助(就像你的情况一样)。

你仍然得到同样的错误吗? 你使用什么操作系统?

为什么提到1.10和PHP7? 1.10 也有同样的问题,而且 PHP 7 似乎不会很快被推荐..

@mfelber
它是 windows 和 afaik 这是一个 windows + PHP 5.6 问题,所以......

我提到是因为我不知道 1.10 是否会有内置解决方法,但更多的是一次维护中断,所以安装 PHP+新 osticket,而不是一次 PHP 和几周后的 1.10(只是懒惰:P)

不推荐使用 PHP7,但我阅读了很多试图使其兼容的文章,我认为它不会解决 5.6 的问题,这就是我想到的原因。

干杯!

@汉尼拔226
我提到的那个也有解决方法问题的人也使用 Windows。

我在我的生产系统中仅使用托管的 debian 挤压服务器。

所以我有点好奇并在我的 windows xampp 测试环境 (Apache/2.4.17 (Win32) OpenSSL/1.0.2d PHP/5.6.14) 中测试了解决方法:该解决方法在那里也能正常工作。
也许它不仅仅是一个窗口的东西......

禁用对等验证似乎也解决了问题(使用 php 5.6):

梨/Net_SMTP#14

@mfelber谢谢我一直在寻找禁用的方法,这对我有用 [IIS 8 和 php 5.6.14]

@jdelhome3578我很高兴能帮上忙。

@mfelber我只希望有一个永久的解决方案

@jdelhome3578我相信开发人员会在某个时候解决这个问题,正如 Jared 所说:

我认为我们应该保持开放并努力解决 PHP 5.6 上的问题。 随着它的使用越来越广泛,这个问题将成为一个更大的问题

对于 Windows 服务器用户,最简单的解决方案是安装 php 5.5 并将 php 5.5 设置为 osticket 站点的活动版本。

从我的 iPhone 6 Plus 发送

2015 年 10 月 30 日上午 7:50,jdelhome3578 [email protected]写道:

@mfelber我只希望有一个永久的解决方案


直接回复此邮件或在 GitHub 上查看。

只是为了让你们知道伙计们,我犯了一个错误,有一个更简单的解决方案:

我刚刚说ticketsystem的IP是可信的发送中继交换。
所以我可以在没有身份验证的情况下发送邮件进行交换。

但无论如何我之前都没有意识到这个错误,因为我们在更新后有 PHP 5.5 aber 没有人报告问题。

干杯!

Debian jessie PHP 5.6.14-0+deb8u1 上存在错误

可以确认@mfelber的临时修复有效。

嗨,大家好,

我刚刚找到这个线程是因为我在欧洲大型主机 HOSTEUROPE 上安装 osticket 时遇到了同样的问题。 在上周,我刚刚将我的主要 php 安装从 php 5.5 更改为 php5.6。 在我的主机上,只需点击一下即可。 我没有发现任何变化,因为一切似乎都正常:我的票务邮件从我所有的三个帐户中都收到了 pop,而且邮件似乎也被我的客户收到了。

但:

唯一错误的是 OST 日志中显示的 Error 550 Relaying not allowed 。

我尝试了 smtp-settings,我发现 OST 无法连接到另一个提供商配置的 smtp-server。 (我使用的是 v1.10-rc.2 (231f11e) 版本),但它尝试通过 php-mail-function 发送邮件(即使我在设置中禁止这样做)。 我的网络服务器不知道外发邮件地址,并通过说“不允许中继”来警告(他是对的!)。

当我改回 PHP5.5 或 PHP5.3 时,一切又完美无缺!

是否有解决方案? 这并不紧急,但在 2016 年,我的提供商将 5.6 设置为标准 php,并且在 2016 年末使用 5.5 的能力将完全结束......

现在怎么办?

你好,
OsTicket 使用的是梨的本地副本,它已经过时了。
下载
https://pear.php.net/package/Net_SMTP/download
http://pear.php.net/package/Net_Socket/download

将“include/pear/Net/”中的 SMTP.php 和 Socket.php 替换为下载档案中的。

SMTP 的变更日志

  • 为 STARTTLS 连接添加 TLSv1.1 和 TLSv1.2 支持。 (#22)

一旦你这样做了,osticket 应该可以工作了。

这不适用于带有 php 5.6.14 的 debian jessie。 有任何想法吗? osTicket 和邮件服务器是不同的服务器。

日志中有任何错误吗?
1 个。 2016 年下午 4:41 пользователь "Sebastian Binder" <
通知@github.com> написал:

这不适用于带有 php 5.6.14 的 debian jessie。 有任何想法吗?


直接回复此邮件或在 GitHub 上查看
https://github.com/osTicket/osTicket-1.8/issues/2628#issuecomment -168306839
.

Unable to email via SMTP:mail.consored-domain.com:587 [[email protected]]
Failed to set sender: [email protected] [SMTP: Invalid response code received from server (code: 530, response: 5.7.0 Must issue a STARTTLS command first)]

我也有同样的问题。

干净安装:
Debian 3.16.7-ckt20-1+deb8u3 (2016-01-17) i686 (Jessie),Linux 3.16.0-4-686-pae,
阿帕奇 2.4.10,
PHP 5.6.14-0+deb8u1,
MySQL 5.5.46,
osTicket v1.9.12 (19292ad),
带有 STARTTLS 的外部 IMAP 和 SMTP

当我在端口 143 上启用 IMAP 时,它似乎没有问题并获取“新”邮件。 将 SMTP 设置为启用,将服务器端口设置为 587 并将身份验证设置为是我收到此错误“身份验证失败 [SMTP: STARTTLS 失败(代码:220,响应:TLS 继续)]”

即使调试级别是“调试”,OS-System-Log 中也没有条目。

有人知道让它工作吗?

安德烈亚斯

这也发生在我的 CentOS 7.2 PHP 5.6 上。

我将看看我是否可以解决这个问题并坚持拉取请求。

你好,
OsTicket 使用的是梨的本地副本,它已经过时了。
下载
pear.php.net/package/Net_SMTP/download
pear.php.net/package/Net_Socket/download

将“include/pear/Net/”中的 SMTP.php 和 Socket.php 替换为下载档案中的。

SMTP 的变更日志

为 STARTTLS 连接添加 TLSv1.1 和 TLSv1.2 支持。 (#22)

一旦你这样做了,osticket 应该可以工作了。

/var/www/osticket/osticket/include/pear/Net

-rw-r--r-- 1 www-data --> SMTP.php
-rw-r--r-- 1 www-data --> Socket.php

@UkaLee这对我不起作用,看看这个差异,看看我做了什么(以防其他人有类似的问题):

https://github.com/johnhunt/osTicket-1.8/commit/d48499b66e3ce9950bdccb7d9b8689a5acaa359f

我们可以提高这个错误的优先级吗? 对我来说似乎是一个严重的问题,特别是如果支持人员无法接收电子邮件警报。 在某些情况下,技术支持甚至可能不知道未送达的电子邮件。

按照@mfelber 的建议,这对我

改变

$this->_socket_options =$socket_options;

$this->_socket_options = array('ssl' => array('verify_peer_name' => false));

@joelrb确定它有效,但下一次 osTicket 更新可能会替换该文件并导致没有电子邮件,直到您再次对其进行调整。

如果是 PHPMailer 可以使用以下..

    $mail->SMTPOptions = array(
        'ssl' => array(
            'verify_peer' => false,
            'verify_peer_name' => false,
            'allow_self_signed' => true
        )
    );

我也得到
身份验证失败 [SMTP: STARTTLS failed (code: 220, response: 2.0.0 Ready to start TLS)]

我已将 SMTP.php 和 Socket.php /include/pear/Net 更新为最新版本。
pear.php.net/package/Net_SMTP/download
pear.php.net/package/Net_Socket/download

现在我收到另一个错误
身份验证失败 [SMTP:从服务器收到的响应代码无效(代码:535,响应:5.7.3 身份验证不成功)]

osTicket 核心,v1.9.14
PHP 版本 5.6.19

尝试将端口 465 用于 SMTP 并在服务器条目之前添加“ssl://”:

smtp

我尝试了需要身份验证的不同电子邮件:是
这工作正常。 由于某种原因,另一封电子邮件未通过身份验证,因此失败。
奇怪 - 但使用 Office 365 许可的电子邮件工作正常。

这个:
身份验证失败 [SMTP:从服务器收到的响应代码无效(代码:535,响应:5.7.3 身份验证不成功)]

通常表示身份验证不成功。 我认为这将是在远程个人。

从管理的角度来看,您有两种方法可以使其发挥作用....

  1. 您使用身份验证
  2. 您像我们一样删除身份验证,并通过 IP 地址和发送域限制对您的 SMTP 服务器的访问。
    smtp settings

在我发布@Pooleyy 时,我注意到您在谈论 Office 365。

你说有执照的邮箱有效??
您是否尝试使用“共享邮箱”?

@robintoy可以共享是的。
但是...我在旧的 osTickets 上设置了相同的电子邮件地址,并且工作正常。 没有您上面建议的身份验证。

嗨@Pooley
您将无法像我们的配置一样使用 Office 365,因为您无法直接访问 Microsoft 的 Exchange 集群以根据需要添加正确的规则。

使用共享邮箱 MS 不久前进行了更新,停止对其进行身份验证,对共享邮箱进行身份验证的唯一方法是与有权访问该邮箱的用户之一

嗨@robintoy
我明白了,感谢您的投入 - 感谢。
我现在用另一封电子邮件解决了这个问题。 奇怪的是它仍然适用于我的旧 osTickets。
干杯! 山姆

我在 PHP 5.6 和 v1.9.14 中遇到了同样的问题。

这个问题使我无法使用 osTicket。 几乎每个电子邮件提供商都在强制执行 STARTTLS 连接,我已经尝试过 Inbox.lv 和 Zoho.com,但没有成功。

同时改变 $this->_socket_options =$socket_options; 没有帮助。 它只创建了一条新的错误消息:身份验证失败 [SMTP: Invalid response code received from server (code: 535, response: Incorrect authentication data)]

(但用户名和密码是正确的)。

我不明白这样的问题怎么会存在将近一年,为什么仍然没有解决。

我用:

  • 这个黑客来自 d48499b66e3ce9950bdccb7d9b8689a5acaa359f
  • __construct函数的变化:
$this->socket_options = array('ssl' => array(
            'verify_peer' => false,
            'verify_peer_name' => false,
            'allow_self_signed' => true
        ));
  • 在配置中设置ssl://
  • 使用端口进行 ssl

有效。

PHP 5.6.24-0+deb8u1

我目前在我们的邮件队列中有 30 多封电子邮件没有发送给 Google,因为 Google 拒绝了电子邮件。 有没有人对此有稳定的解决方案?

我正在运行 debian 和 php5.6 并且遇到了同样的问题。 我没有更改 Net_SMTP 构造函数中的代码,而是更改了两个调用以实例化 include/pear/Mail/smtpmx.php 和 include/pear/Mail/smtp.php 中的 Net_SMTP 类以传递套接字选项。 我相信这是一个更好的修复。 这是 PEAR 问题,而不是 osTicket 问题。

我在最新版本 1.10 中遇到了同样的问题
无法启用 SMTP 身份验证,总是遇到 STARTTLS 问题。

也尝试使用上述所有建议,但不起作用:(

我同意@cosmospham使用 d48499b

他的方法适用于 1.10 / 1.9.15 版本。

如果可以将其推送到主分支,那就太好了。

服务器信息
osTicket 版本 v1.9.15 — 最新
Web 服务器软件 Apache/2.4.23 (Unix) OpenSSL/1.0.1e-fips mod_bwlimited/1.4
MySQL 版本 5.5.52
PHP 版本 5.6.27

@protich用 4f68aeb 修复了这个问题

嗨,这仍然对我不起作用。 我使用带有 TLS 587 的 1 和 1 英国托管。

有什么帮助吗?

需要一些紧急援助...

我无法在我的帮助台 osticket 中保存 smtp (gmail)。下面是我的版本的附件。
它也与php ver 5.6有关吗? tq

error1
error2

还有一个问题,我在 windows server 2008 r2 标准 64 位环境中使用.. smtp 服务器功能是否必须做任何配置(用 windows 内置).. 对不起,我真的是这个 osticket 配置的新手。 似乎我是从其他 klik 那里拿来的...
error3

希望有人帮助我。 谢谢

“SMTP:无法连接:无法建立连接,因为目标机器主动拒绝它”
远程服务器拒绝连接。

在 Windows 中的 SMTP 虚拟邮件服务器功能中,服务器通常需要中继权限。 返回您发布的那个屏幕。 单击访问选项卡。 单击“中继”,然后添加 Web 服务器的 IP 地址。 还要确保防火墙允许在您使用的端口上进行连接。

亲爱的恩泽尔

似乎我是新手……抱歉……我曾经打开过 ip……我看到 ip 有点像这个 127.0.0.1 ……我不知道它来自哪里……

像这样对吗?

error1

我不知道你的 IP 地址是什么,所以我不能真正回答它是否正确。 我假设您的网络服务器是 172.21.9.40,并且您在同一台机器上运行 SMTP 虚拟服务器? 还要检查您的防火墙。 :)

是的,osticket 都在这台服务器上......是的 smtp 虚拟服务器也是同一台机器...... oracle sun Blade 机器......运行 Windows Server 2008 r2 标准 64 位......在我将服务器(机器)IP 包含在中继中并测试后保存[email protected]smtp 设置也失败了.. 使用 4 diff port , 465 , 443 , 25 , 587

我可以在防火墙 windowss 中看到 SMTP 打勾..但是这台机器也安装了卡巴斯基。 我不知道卡巴斯基是否也控制了防火墙..

error2

我在 osTicket 1.10.1 上连接到 smtp.gmail.com 时遇到了同样的问题(STARTTLS 错误)。
主机:Windows Server 2012 (IIS 8.5)、PHP 7、MySQL (5.7)。

将选项 'verify_peer' => false 添加到 'ssl' 套接字选项修复了它。
在文件include/pear/Net/SMTP.php中,在构造函数中更改:

// Turn off peer name verification by default\n
if (!$socket_options)
    $socket_options = array(
        'ssl' => array('verify_peer_name' => false)
    );

为了

// Turn off peer name verification by default\n
if (!$socket_options)
    $socket_options = array(
        'ssl' => array('verify_peer_name' => false, 'verify_peer' => false)
    );

没有什么对我有用

通过 SMTP 发送电子邮件
无法连接到 smtp.gmail。 com:465 [SMTP:无法连接套接字:连接超时(代码:-1,响应:)]

无法连接到 smtp.gmail。 com:587 [SMTP:无法连接套接字:连接被拒绝(代码:-1,响应:)]

服务器信息

osTicket 版本 | v1.15 (d5ee0df) — 最新
网络服务器软件 | 阿帕奇
MySQL 版本 | 5.6.49
PHP 版本 | 7.3.23

请帮助解决这个问题

此页面是否有帮助?
0 / 5 - 0 等级