Class: Lazylead::Postman
- Inherits:
-
Object
- Object
- Lazylead::Postman
- Includes:
- Emailing
- Defined in:
- lib/lazylead/postman.rb
Overview
TODO:
#/DEV Merge Smtp and Postman objects. There might be different postman’s based on different mail servers, thus its better to keep together the instantiation and sending. For each type of mail servers we should have separate object.
TODO:
#/DEV TestMail.deliveries -> store all emails to the files in /test/resources/testmailer/*.html. Right now after each test with email sending we taking the body and test it content. Quite ofter we need to check visual style in mails, etc, thus its better to store them on disk.
A postman to send emails.
- Author
-
Yurii Dubinka ([email protected])
- Copyright
-
Copyright © 2019-2020 Yurii Dubinka
- License
-
MIT
Instance Method Summary collapse
- #add_attachments(mail, opts) ⇒ Object
-
#initialize(log = Log.new) ⇒ Postman
constructor
A new instance of Postman.
-
#send(opts) ⇒ Object
Send an email.
Methods included from Emailing
Constructor Details
Instance Method Details
#add_attachments(mail, opts) ⇒ Object
72 73 74 75 76 |
# File 'lib/lazylead/postman.rb', line 72 def (mail, opts) return unless opts.key? "attachments" opts["attachments"].select { |a| File.file? a } .each { |a| mail.add_file a } end |
#send(opts) ⇒ Object
Send an email.
- :opts
-
the mail configuration like to, from, cc, subject, template.
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/lazylead/postman.rb', line 55 def send(opts) html = make_body(opts) mail = Mail.new mail.to opts[:to] || opts["to"] mail.from opts["from"] mail.cc opts["cc"] if opts.key? "cc" mail.subject opts["subject"] mail.html_part do content_type "text/html; charset=UTF-8" body html end mail, opts mail.deliver @log.debug "Email was generated from #{opts} and send by #{__FILE__}. " \ "Here is the body: #{html}" end |