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