misc/plugin/comment_mail-smtp.rb in tdiary-4.1.1 vs misc/plugin/comment_mail-smtp.rb in tdiary-4.1.2

- old
+ new

@@ -1,10 +1,10 @@ # -*- coding: utf-8 -*- # comment_mail-smtp.rb # # SMTPプロトコルを使ってツッコミをメールで知らせる -# 入れるだけで動作する +# 同一ホスト内にSMTPサーバがある場合は有効にするだけで動作する # # Options: # 設定画面から指定できるもの(ツッコミメール系プラグイン共通): # @options['comment_mail.enable'] # メールを送るかどうかを指定する。true(送る)かfalse(送らない)。 @@ -23,21 +23,36 @@ # tdiary.confでのみ指定できるもの: # @options['comment_mail.smtp_host'] # @options['comment_mail.smtp_port'] # それぞれ、メール送信に使うSMTPサーバのホスト名とポート番号。 # 無指定時はそれぞれ「'localhost'」と「25」。 +# 以下は通常は不要。必要に応じて指定する: +# @options['comment_mail.user_name'] +# @options['comment_mail.password'] +# SMTP認証が必要な場合のユーザ名とパスワード +# @options['comment_mail.authentication'] +# SMTP認証の方式。:plainや:loginなど(Mail gemに指定できるもの) +# @options['comment_mail.starttls'] +# TLSに自動接続する(true/false) (Mail gem) # -# Copyright (c) 2003 TADA Tadashi <sho@spc.gr.jp> +# Copyright (c) 2015 TADA Tadashi <t@tdtds.jp> # You can distribute this file under the GPL2 or any later version. # def comment_mail( text, to ) begin - require 'net/smtp' - host = @conf['comment_mail.smtp_host'] || 'localhost' - port = @conf['comment_mail.smtp_port'] || 25 - Net::SMTP.start( host, port ) do |smtp| - smtp.send_mail( text.force_encoding( 'US-ASCII' ), @conf.author_mail.untaint, to ) - end + require 'mail' + + mail = Mail.new( text ) + delivery_opts = { + address: @conf['comment_mail.smtp_host'] || 'localhost', + port: @conf['comment_mail.smtp_port'] || 25, + authentication: @conf['comment_mail.authentication'], + user_name: @conf['comment_mail.user_name'], + password: @conf['comment_mail.password'], + enable_starttls_auto: @conf['comment_mail.starttls'] + }.delete_if{|k,v| v == nil} + mail.delivery_method( :smtp, delivery_opts ) + mail.deliver rescue $stderr.puts $! end end