class Sinatra::Mailer::Email
Attributes
config[RW]
mail[RW]
Public Class Methods
new(o={})
click to toggle source
Parameters¶ ↑
- o<Hash{~to_s => Object}>
-
Configuration commands to send to
MailFactory
.
# File lib/sinatra_mailer/mailer.rb, line 92 def initialize(o={}) self.config = Mailer.config || {:sendmail_path => "/usr/sbin/sendmail"} o[:rawhtml] = o.delete(:html) m = MailFactory.new() o.each { |k,v| m.send "#{k}=", v } @mail = m end
Public Instance Methods
attach(file_or_files, filename = file_or_files.is_a?(File) ? File.basename(file_or_files.path) : nil, type = nil, headers = nil)
click to toggle source
Parameters¶ ↑
- file_or_files<File, Array>
-
File(s) to attach.
- filename<String>
- type<~to_s>
-
The attachment MIME type. If left out, it will be determined from file_or_files.
- headers<String, Array>
-
Additional attachment headers.
Raises¶ ↑
- ArgumentError
-
file_or_files was not a File or an Array of File instances.
# File lib/sinatra_mailer/mailer.rb, line 80 def attach(file_or_files, filename = file_or_files.is_a?(File) ? File.basename(file_or_files.path) : nil, type = nil, headers = nil) if file_or_files.is_a?(Array) file_or_files.each {|k,v| @mail.add_attachment_as k, *v} else raise ArgumentError, "You did not pass in a file. Instead, you sent a #{file_or_files.class}" if !file_or_files.is_a?(File) @mail.add_attachment_as(file_or_files, filename, type, headers) end end
deliver!()
click to toggle source
Delivers the mail with the specified delivery method, defaulting to net_smtp.
# File lib/sinatra_mailer/mailer.rb, line 65 def deliver! send(Mailer.delivery_method || :net_smtp) end
net_smtp()
click to toggle source
Sends the mail using SMTP.
# File lib/sinatra_mailer/mailer.rb, line 56 def net_smtp Net::SMTP.start(config[:host], config[:port].to_i, config[:domain], config[:user], config[:pass], config[:auth]) { |smtp| smtp.send_message(@mail.to_s, @mail.from.first, @mail.to.to_s.split(/[,;]/)) } end
sendmail()
click to toggle source
Sends the mail using sendmail.
# File lib/sinatra_mailer/mailer.rb, line 49 def sendmail sendmail = IO.popen("#{config[:sendmail_path]} #{@mail.to}", "w+") sendmail.puts @mail.to_s sendmail.close end