我在 Windows 7 上使用 Bugzilla。
我正在使用非官方 Bugzilla 安装程序。我按照步骤操作,并在需要时提供了有效的凭证。
我打开 Bugzilla 并尝试创建一个新帐户,但出现以下错误。
Software error:
No SASL mechanism found
at C:/Program Files/Bugzilla/perl/perl/site/lib/Authen/SASL.pm line 77
at C:/Program Files/Bugzilla/perl/perl/lib/Net/SMTP.pm line 143
我运行了 checksetup.pl 并发现我的机器上 Authen::SASL 和 SMTP 都可用。
checksetup.pl 的输出如下。
* 这是 perl 5.10.1 上的 Bugzilla 3.6.3 * 在 Win7 Build 7600 上运行 检查 perl 模块... 检查 CGI.pm (v3.33) 是否正常:找到 v3.49 检查 Digest-SHA(任意)是否正常:找到 v5.48 检查 TimeDate (v2.21) 是否正常:找到 v2.24 检查日期时间 (v0.28) 是否正常:找到 v0.53 检查 DateTime-TimeZone (v0.79) 是否正常:找到 v1.10 检查 DBI (v1.41) 是否正常:找到 v1.609 检查 Template-Toolkit (v2.22) 是否正常:找到 v2.22 检查电子邮件发送 (v2.16) 是否正常:找到 v2.198 检查 Email-MIME (v1.861) 是否正常:找到 v1.903 检查电子邮件 MIME 编码 (v1.313) 正常:找到 v1.313 检查 Email-MIME-Modifier (v1.442) 是否正常:找到 v1.903 检查 URI(任意)是否正确:找到 v1.52 检查可用的 perl DBD 模块... 检查 DBD-Pg (v1.45) 是否正常:发现 v2.16.1 检查 DBD-mysql (v4.00) 是否正常:找到 v4.012 检查未找到 DBD-Oracle (v1.19) 以下 Perl 模块是可选的: 检查 GD (v1.20) 是否正常:找到 v2.44 检查图表 (v2.1) 是否正常:找到 v2.4.1 检查 Template-GD (任意) 是否正常:找到 v1.56 检查 GDTextUtil (任何) 是否正常:找到 v0.86 检查 GDGraph(任何)是否正常:找到 v1.44 检查 XML-Twig (任意) 是否正常:找到 v3.34 检查 MIME 工具 (v5.406) 是否正常:找到 v5.427 检查 libwww-perl (任意) 是否正常:发现 v5.834 检查 PatchReader (v0.9.4) 是否正常:找到 v0.9.5 检查 perl-ldap (任何) 是否正常:找到 v0.39 检查 Authen-SASL(任何)是否正常:发现 v2.15 检查 RadiusPerl (任意) 是否正常:发现 v0.17 检查 SOAP-Lite (v0.710.06) 是否正常:找到 v0.710.10 检查 JSON-RPC (任意) 是否正常:找到 v0.95 检查 Test-Taint (任何) 是否正常:发现 v1.04 检查 HTML-Parser (v3.40) 是否正常:找到 v3.64 检查 HTML-Scrubber (任意) 是否正常:找到 v0.08 检查 Email-MIME-Attachment-Stripper (任意) 是否正常:找到 v1.316 检查电子邮件回复(任何)是否正常:找到 v1.202 检查 TheSchwartz (任何) 未找到 检查未找到 Daemon-Generic (any) 未找到 mod_perl (v1.999022) ******************************************************************************* * 可选模块 * ******************************************************************************* * Bugzilla 不需要某些 Perl 模块,但是 * * 安装最新版本,您可以访问其他内容 * * 特征。 * * * * 您尚未安装的可选模块如下所列,* * 及其启用的功能名称。该表下方是 * * 安装每个模块的命令。* ******************************************************************************* * 模块名称 * 启用功能 * ******************************************************************************* * TheSchwartz * 邮件队列 * * 守护进程通用 * 邮件队列 * * mod_perl * mod_perl * ******************************************************************************* * Windows 用户注意事项 * ******************************************************************************* * 为了安装下面列出的模块,您首先必须运行 * * 以管理员身份执行以下命令:* * * * ppm repo 添加 theory58S http://cpan.uwinnipeg.ca/PPMPackages/10xx/ * * * 然后您必须执行以下操作(也以管理员身份):* * * * ppm 回购理论 58S * * * * 反复执行最后一个命令,直到看到“theory58S”为止 * * 显示列表的顶部。* ******************************************************************************* 安装可选模块的命令: TheSchwartz:ppm 安装 TheSchwartz 守护进程通用: ppm 安装守护进程通用 mod_perl:ppm 安装 mod_perl 正在读取./localconfig... 检查 DBD-mysql (v4.00) 是否正常:找到 v4.012 检查 MySQL (v4.1.2) 是否正常:找到 v5.1.44-community-log 删除现有的已编译模板... 预编译模板...完成。 现在您已经安装了 Bugzilla,您应该访问“参数” 页面(链接在管理员帐户的页脚中),以确保 按照您的意愿进行设置 - 包括将 'urlbase' 选项设置为 正确的 URL。 按任意键继续 。 。 。
请告诉我我该怎么办。
请注意:我在公司代理后面运行,SSL/TLS 不在内部使用,但我也提供了 smtpUser 和 smtpPass。
答案1
最可能的原因是你的库缺少 Authen::SASL::Perl::NTLM
答案2
看起来您已将 Bugzilla 系统配置为在发送电子邮件时使用 SASL 系统进行身份验证,但尚未配置 SASL 系统的具体信息。
来自 Bugzilla 指南:
3.1.12. Email
This page contains all of the parameters for configuring how Bugzilla
deals with the email notifications it sends. See below for a summary of
important options.
...
smtp_username
Username to use for SASL authentication to the SMTP server.
Leave this parameter empty if your server does not require
authentication.
smtp_password
Password to use for SASL authentication to the SMTP server. This
parameter will be ignored if the "smtp_username" parameter is
left empty.
答案3
at /usr/share/perl5/vendor_perl/Authen/SASL.pm line 77.
at /usr/share/perl5/Net/SMTP.pm line 143.
对我来说已解决
对于此错误,请对 Microsft Exchage 进行以下设置,通过电子邮件发送至使用 TLS 或 SSL/按照以下步骤操作
对于 Windows 用户CPAN: install Net::SMTP::TLS
Linux 用户 /
cpan install Email::Send::SMTP::TLS
cp Mailer.pm Mailer.pm_Bkp
在下面文件中进行更改
vim /usr/share/bugzilla/Bugzilla/Mailer.pm
use Email::Send;
使用下面或上面的任何一个字符串来通信 SMTP TLS
use Email::Send::SMTP::TLS;
sub MessageToMTA {
my ($smtp_server, $smtp_port);
}
if ($method eq "SMTP" | | $method eq "SMTP::TLS") {
($smtp_server,$smtp_port) = split /:/,Bugzilla->params->{"smtpserver"};
push @args,
Host => $smtp_server,
user => Bugzilla->params->{"smtp_username"},
password => Bugzilla->params->{"smtp_password"},
Hello => $hostname,
Debug => Bugzilla->params->{'smtp_debug'};
push @args, Port => $smtp_port if($smtp_port);
}
:wq
保存此文件。
在检查 URL 之前,运行以下命令来验证错误:
./checksetup.pl
现在检查它是否可以工作。