Class: GmailSender
- Inherits:
-
Object
- Object
- GmailSender
- Defined in:
- lib/gmail_sender.rb,
lib/gmail_sender/error.rb,
lib/gmail_sender/utils.rb,
lib/gmail_sender/message_stream_writer.rb
Defined Under Namespace
Modules: Utils Classes: Error, MessageStreamWriter
Instance Method Summary collapse
- #attach(file) ⇒ Object
-
#initialize(user_or_email, password, net_smtp_class = Net::SMTP, message_stream_writer_class = MessageStreamWriter) ⇒ GmailSender
constructor
A new instance of GmailSender.
- #send(options = {}) ⇒ Object
Constructor Details
#initialize(user_or_email, password, net_smtp_class = Net::SMTP, message_stream_writer_class = MessageStreamWriter) ⇒ GmailSender
Returns a new instance of GmailSender.
8 9 10 11 12 13 14 15 16 17 18 |
# File 'lib/gmail_sender.rb', line 8 def initialize(user_or_email, password, net_smtp_class = Net::SMTP, = MessageStreamWriter) user, domain = user_or_email.split("@") @sender_domain = domain || "gmail.com" @sender_email = "#{user}@#{@sender_domain}" @sender_password = password @net_smtp = net_smtp_class.new("smtp.gmail.com", 587) @net_smtp.enable_starttls @message_stream_writer = .new(@sender_email) end |
Instance Method Details
#attach(file) ⇒ Object
20 21 22 |
# File 'lib/gmail_sender.rb', line 20 def attach(file) @message_stream_writer. << file if File.exist?(file) end |
#send(options = {}) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/gmail_sender.rb', line 24 def send( = {}) raise(Error, "Missing receiver (:to => '[email protected]')") if Utils.blank?([:to]) to = [[:to]].flatten subject = [:subject] || "" content = [:content] || "" content_type = [:content_type] || 'text/plain; charset=UTF-8' @net_smtp.start(@sender_domain, @sender_email, @sender_password, :plain) do |smtp| smtp.(@sender_email, to) do |msg_stream| @message_stream_writer.write(msg_stream, to, subject, content, content_type) end end end |