Rubyでメール送信(HTMLメール、SMTP認証)
以前にRubyで
TMailやActionMailer等もあるのですが、そこまできっちり作らなくてもいい場合用です。
【要件】
- SMTP認証で
メール送信 できる - HTMLメールが送信できる
- classとして独立する
require 'kconv'
require 'net/smtp'
class SimpleMail
def initialize(from_address, smtp_server)
@from_address = from_address
@smtp_server = smtp_server
@smtp_port = 25
@smtp_domain = smtp_server
end
def send(to_address, subject, message)
contents = mail_contents(subject) + "\n"
contents << message
Net::SMTP.start(@smtp_server) {|smtp|
smtp.sendmail( contents, @from_address, to_address )
}
end
def send_html(to_address, subject, message)
contents = mail_contents(subject)
contents << 'Content-Type: text/html; charset="iso-2022-jp"\n\n'
contents << message.sub(/content="text\/html; charset=UTF-8"/, 'content="text/html; charset=iso-2022-jp"').tojis
Net::SMTP.start(@smtp_server) {|smtp|
smtp.sendmail( contents, @from_address, to_address )
}
end
def send_auth(to_address, subject, message, account, password)
contents = mail_contents(subject) + "\n"
contents << message
Net::SMTP.start(@smtp_server, @smtp_port, @smtp_domain, account, password) {|smtp|
smtp.sendmail( contents, @from_address, to_address )
}
end
private
def mail_contents(subject)
contents = "Subject: #{subject.tojis}\n"
end
end
呼び出しは以下のような感じでOK!
結構簡単につくれました。
# 例:HTMLメール送信
SimpleMail.new("from@address","smtp_server").send_html("to@address", subject, message)
トラックバック(0)
このブログ記事に対するトラックバックURL(トラックバックは承認後に公開されます)


コメントする