1

まず最初に、私が完全な Ruby 初心者であることを知っておいてください :)

システム (Ubuntu 10.04) にgit-commit-notifier ( http://github.com/ilozka/git-commit-notifier ) をインストールし、すべてのインストール手順に従いましたが、git リポジトリにプッシュするたびにこのエラーが発生します。メッセージ:

remote: Sending mail...
remote: /usr/lib/ruby/1.8/net/smtp.rb:944:in `check_auth_response': 530 5.7.0 Must issue a STARTTLS command first. n20sm12555550ibe.5 (Net::SMTPAuthenticationError)
remote:     from /usr/lib/ruby/1.8/net/smtp.rb:735:in `auth_plain'
remote:     from /usr/lib/ruby/1.8/net/smtp.rb:727:in `send'
remote:     from /usr/lib/ruby/1.8/net/smtp.rb:727:in `authenticate'
remote:     from /usr/lib/ruby/1.8/net/smtp.rb:568:in `do_start'
remote:     from /usr/lib/ruby/1.8/net/smtp.rb:527:in `start'
remote:     from /usr/lib/ruby/1.8/net/smtp.rb:465:in `start'
remote:     from /var/lib/gems/1.8/gems/git-commit-notifier-0.7.2/bin/../lib/emailer.rb:42:in `perform_delivery_smtp'
remote:     from /var/lib/gems/1.8/gems/git-commit-notifier-0.7.2/bin/../lib/emailer.rb:96:in `send'
remote:     from /var/lib/gems/1.8/gems/git-commit-notifier-0.7.2/bin/../lib/commit_hook.rb:55:in `run'
remote:     from /var/lib/gems/1.8/gems/git-commit-notifier-0.7.2/bin/../lib/diff_to_html.rb:285:in `each_with_index'
remote:     from /var/lib/gems/1.8/gems/git-commit-notifier-0.7.2/bin/../lib/commit_hook.rb:51:in `each'
remote:     from /var/lib/gems/1.8/gems/git-commit-notifier-0.7.2/bin/../lib/commit_hook.rb:51:in `each_with_index'
remote:     from /var/lib/gems/1.8/gems/git-commit-notifier-0.7.2/bin/../lib/commit_hook.rb:51:in `run'
remote:     from /var/lib/gems/1.8/gems/git-commit-notifier-0.7.2/bin/git-commit-notifier:13
remote:     from /var/lib/gems/1.8/bin/git-commit-notifier:19:in `load'
remote:     from /var/lib/gems/1.8/bin/git-commit-notifier:19

エラーを emailer.rb スクリプトまで追跡しました。具体的には次の行:

Net::SMTP.start(settings['address'], settings['port'], settings['domain'],                                                                                                                             
                settings['user_name'], settings['password'], settings['authentication']) do |smtp|

パラメータは正しく渡されたようです(私はそれを確認しました)。

私の構成スクリプトは次のようになります。

# select the delivery method: smtp or sendmail
delivery_method: smtp

# settings for the smtp server
smtp_server:
    address: smtp.gmail.com
    port: 587
    domain: mydomain
    user_name: redmine@mydomain.com
    password: xxxxxx
    authentication: plain
    enable_tls: true

この問題を解決する方法を知っている人はいますか? 同じサーバーに Redmine があり、正常に動作します。メール送信も問題ありません。

ありがとうございました

4

1 に答える 1

2

Net::SMTP は STARTTLS をサポートしていないようです。This questionは、まさにそれを行うためにNet::SMTPにモンキーパッチを適用することにより、その問題の解決策を提供します。

于 2010-07-17T19:02:11.333 に答える