AUTH 失败:必须先发出 STARTTLS 命令

Failed AUTH: Must issue a STARTTLS command first

我一辈子都想不出如何设置 Bugzilla 以使用 TLS 发送电子邮件。我得到了 Bugzilla 站点 运行,但是,当我尝试更改我的 Bugzilla 帐户电子邮件时,系统失败并显示以下内容(我设置我的电子邮件参数以使用我的 Amazon AWS 电子邮件服务器):

An unexpected error occurred. This could be a temporary problem, or some code is behaving incorrectly. If this problem persists, please email this page to ...@.....com with details of what you were doing at the time this message appeared.

URL: 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=...

There was an error sending mail from 'bugzilla@example.com' to 'johndoe422@example.com': failed AUTH: Must issue a STARTTLS command first

Traceback:

at Bugzilla/Mailer.pm line 186.
Bugzilla::Mailer::MessageToMTA(...) called at Bugzilla/Token.pm line 116
Bugzilla::Token::IssueEmailChangeToken(...) called at /srv/www/bugzilla/userprefs.cgi line 120
main::SaveAccount(...) called at /srv/www/bugzilla/userprefs.cgi line 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 大师可以帮忙吗?

谢谢!

通过终止我的 Bugzilla 安装 (5.0.1) 并完全重新安装旧版本 (4.4.10) 解决了这个问题。事情只适用于以前的版本。

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