【问题标题】:Failed AUTH: Must issue a STARTTLS command firstAUTH 失败:必须先发出 STARTTLS 命令
【发布时间】:2015-12-28 03:09:19
【问题描述】:

我终其一生都无法弄清楚如何设置 Bugzilla 以使用 TLS 发送电子邮件。我让 Bugzilla 站点运行,但是,当我尝试更改我的 Bugzilla 帐户电子邮件时,系统出现以下故障(我设置了我的电子邮件参数以使用我的 Amazon AWS 电子邮件服务器):

发生意外错误。这可能是暂时的问题,或者某些代码的行为不正确。如果此问题仍然存在,请将此页面通过电子邮件发送至 ...@.....com,并详细说明您在出现此消息时正在执行的操作。

网址:http://example.com/userprefs.cgi?new_password1=&new_password2=&tab=account&old_login=jdoe%40example.com&realname=John%20Doe&new_login_name=johndoe422%40example.net&dosave=1&token=...&old_password=...

从“bugzilla@example.com”向“johndoe422@example.com”发送邮件时出错:AUTH 失败:必须先发出 STARTTLS 命令

追溯:

在 Bugzilla/Mailer.pm 第 186 行。
Bugzilla::Mailer::MessageToMTA(...) 在 Bugzilla/Token.pm 第 116 行调用
Bugzilla::Token::IssueEmailChangeToken(...) 在 /srv/www/bugzilla/userprefs.cgi 第 120 行调用
main::SaveAccount(...) 在 /srv/www/bugzilla/userprefs.cgi 第 608 行调用

所以我继续尝试按照以下说明解决此问题:Bugzilla Alerts Using Gmail

我设法使用 cpanm 安装了 Email::Send::SMTP::TLS 模块(不知道为什么我根本无法通过 CPAN 安装任何模块),安装后,SMTP::TLS 选项不会出现在下拉列表中。我只是忽略了它并按照指示继续更新 Mailer.pm。

之后,当我刷新我的 bugzilla 页面时,我收到以下错误:

Software error:

Global symbol "@args" requires explicit package name at Bugzilla/Mailer.pm line 138.
Global symbol "@args" requires explicit package name at Bugzilla/Mailer.pm line 144.
Compilation failed in require at Bugzilla/Auth.pm line 22.
BEGIN failed--compilation aborted at Bugzilla/Auth.pm line 22.
Compilation failed in require at Bugzilla.pm line 23.
BEGIN failed--compilation aborted at Bugzilla.pm line 23.
Compilation failed in require at /srv/www/bugzilla/editparams.cgi line 15.
BEGIN failed--compilation aborted at /srv/www/bugzilla/editparams.cgi line 15.
For help, please send mail to this site's webmaster, giving this error message and the time and date of the error.

我读到这可能是因为 Email::Send::SMTP::TLS 需要 Net::SSLeay 包。所以我继续尝试使用 cpanm 安装它。但是,cpanm 失败并显示以下日志:

23 *** Found OpenSSL-1.0.1f installed in /usr
 24 *** Be sure to use the same compiler and options to compile your OpenSSL, perl,
 25     and Net::SSLeay. Mixing and matching compilers is not supported.
 26 Do you want to run external tests?
 27 These tests *will* *fail* if you do not have network connectivity. [n] n
 28 Checking if your kit is complete...
 29 Looks good
 30 Generating a Unix-style Makefile
 31 Writing Makefile for Net::SSLeay
 32 Writing MYMETA.yml and MYMETA.json
 33 -> OK
 34 Checking dependencies from MYMETA.json ...
 35 Checking if you have Test::More 0.60_01 ... Yes (1.001014)
 36 Checking if you have MIME::Base64 0 ... Yes (3.13)
 37 Checking if you have ExtUtils::MakeMaker 0 ... Yes (7.10)
 38 Building and testing Net-SSLeay-1.72
 39 cp lib/Net/SSLeay.pm blib/lib/Net/SSLeay.pm
 40 AutoSplitting blib/lib/Net/SSLeay.pm (blib/lib/auto/Net/SSLeay)
 41 blib/lib/Net/SSLeay.pm: some names are not unique when truncated to 8 characters:
 42  directory blib/lib/auto/Net/SSLeay:
 43   do_https3.al, do_https2.al, do_https4.al, do_https.al truncate to do_https
 44   do_httpx3.al, do_httpx2.al, do_httpx4.al truncate to do_httpx
 45   get_https.al, get_https3.al, get_https4.al, get_http.al, get_http3.al, get_http4.al, get_httpx.al, get_httpx3.al, get_httpx4.al truncate to get_http
 46   head_https.al, head_https3.al, head_https4.al, head_http.al, head_http3.al, head_http4.al, head_httpx.al, head_httpx3.al, head_httpx4.al truncate to head_htt
 47   post_https.al, post_https3.al, post_https4.al, post_http.al, post_http3.al, post_http4.al, post_httpx.al, post_httpx3.al, post_httpx4.al truncate to post_htt
 48   put_https.al, put_https3.al, put_https4.al, put_http.al, put_http3.al, put_http4.al, put_httpx.al, put_httpx3.al, put_httpx4.al truncate to put_http
 49   ssl_read_all.al, ssl_read_until.al, ssl_read_CRLF.al truncate to ssl_read
 50   ssl_write_all.al, ssl_write_CRLF.al truncate to ssl_writ
 51   tcp_read_all.al, tcp_read_until.al, tcp_read_CRLF.al truncate to tcp_read
 52   tcp_write_all.al, tcp_write_CRLF.al truncate to tcp_writ
 53 cp lib/Net/SSLeay/Handle.pm blib/lib/Net/SSLeay/Handle.pm
 54 cp lib/Net/SSLeay.pod blib/lib/Net/SSLeay.pod
 55 Running Mkbootstrap for Net::SSLeay ()
 56 chmod 644 "SSLeay.bs"
 57 "/usr/bin/perl" "-Iinc" "/usr/share/perl/5.18/ExtUtils/xsubpp"  -typemap "/usr/share/perl/5.18/ExtUtils/typemap" -typemap "typemap"  SSLeay.xs > SSLeay.xsc && mv SSLeay.xsc SSL    eay.c
 58 cc -c  -I/usr/include -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fstack-protector -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g       -DVERSION=\"1.72\" -DXS_VERSION=\"1.72\" -fPIC "-I/usr/lib/perl/5.18/CORE"   SSLeay.c
 59 {standard input}: Assembler messages:
 60 {standard input}: Error: open CFI at the end of file; missing .cfi_endproc directive
 61 cc: internal compiler error: Killed (program cc1)
 62 Please submit a full bug report,
 63 with preprocessed source if appropriate.
 64 See <file:///usr/share/doc/gcc-4.8/README.Bugs> for instructions.
 65 make: *** [SSLeay.o] Error 4
 66 -> FAIL Installing Net::SSLeay failed. See /home/ubuntu/.cpanm/work/1443609644.32449/build.log for details. Retry with --force to force install it.

我不了解 perl,也无法弄清楚为什么我会左右出错。 我在很多地方读到,我可以使用以下命令简单地安装所有可用的软件包:

/usr/bin/perl install-module.pl --all

但是,这个命令对我不起作用。 (我根本无法使用 CPAN 安装任何模块,不知道为什么)它几乎对我没有任何作用。这是我执行 install-module.pl 时得到的输出:

ubuntu@ip-10-130-10-107:/srv/www/bugzilla$ sudo /usr/bin/perl install-module.pl --all
Checking for                 CPAN (v1.81)     ok: found v2.10
Checking for                 YAML (any)       ok: found v1.15
Checking for   ExtUtils-MakeMaker (v6.31)     ok: found v7.1
defined(@array) is deprecated at /usr/share/perl5/Chart/Base.pm line 181.
        (Maybe you should just omit the defined()?)
defined(@array) is deprecated at /usr/share/perl5/Chart/Base.pm line 233.
        (Maybe you should just omit the defined()?)
Reading '/home/ubuntu/.cpan/Metadata'
Fetching with LWP:
http://cpan.mirror.vexxhost.com/authors/01mailrc.txt.gz
Reading '/home/ubuntu/.cpan/source/authors/01mailrc.txt.gz'
............................................................................DONE
Fetching with LWP:
http://cpan.mirror.vexxhost.com/modules/02packages.details.txt.gz
Reading '/home/ubuntu/.cpan/source/modules/02packages.details.txt.gz'
  Database was generated on Wed, 30 Sep 2015 09:53:42 GMT
..........ubuntu@ip-10-130-10-107:/srv/www/bugzilla$

我不确定为什么事情对我不起作用。我的 perl 安装有问题还是什么?可以请一些 perl 大师帮忙吗?

谢谢!

【问题讨论】:

  • 我不知道为什么人们不赞成这个问题,这表明我没有做我的研究。我查看了整个互联网并尝试了各种解决方案,这就是为什么我会遇到所有这些错误,因为我已经研究并尝试了很多事情。如果您不是在这里提供帮助或有任何建设性的 cmets 可以提供,请不要投反对票。
  • 这是一个 C 编译器错误。我在rt.cpan.org/Ticket/Display.html?id=107422 提交了它。如果您将电子邮件地址作为CC 添加到错误中,那将是非常棒的,以防 Net-SSLeay 维护人员需要您提供更多详细信息以修复或减轻错误。
  • @daxim 欢迎回来! \o/
  • @daxim 你能帮我添加我的电子邮件吗? pinghsien422@gmail.com 我无法将自己添加到抄送列表中,我没有看到任何可以让我这样做的东西。怀疑我需要登录才能这样做,创建一个比特卡帐户,但不知何故点击“继续登录”浏览器只是没有响应。
  • 回到原来的问题,我打开了 TLS.pm,查看了所有的“使用”状态(Email::Address、Net::SMTP::TLS::ButMaintained 和 Return::Value ),发现我已经安装了所有这些。我没有看到它使用 Net::SSLeay。我想知道看看 SSLeay 是否是正确的方向。想法?

标签: perl email ssl smtp bugzilla


【解决方案1】:

我用 Bugzilla 5 解决了同样的问题半天。我没有成功让 STARTTLS 工作,这很奇怪,因为这是当今发送电子邮件的标准方式。我终于放弃并在我的 Postfix 服务器上激活了 SMTPS(端口 465)。这很容易做到,一旦我做到了,Bugzilla 就可以轻松地发送电子邮件。如果您可以控制邮件服务器,这是一种更简单的方法,因为生命太短,无法花时间阅读 perl 代码。编辑:这么多年过去了,STARTTLS 仍然无法在 Bugzilla 上运行。我尝试安装一些建议的libnet-smtp-tls-butmaintained-perl,但这没有帮助。对于那些发现这篇文章的人,放弃并使用 smtps。

【讨论】:

    【解决方案2】:

    通过终止我的 Bugzilla 安装 (5.0.1) 并完全重新安装旧版本 (4.4.10) 解决了这个问题。以前的版本可以正常工作。

    【讨论】:

      猜你喜欢
      • 2012-10-05
      • 1970-01-01
      • 2014-06-25
      • 2015-04-24
      • 2017-01-13
      • 2015-12-16
      • 2017-01-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多