Previously, I have added post on send email from application via postmark. [Check Here..][1]
Now will see how to send attachment with email.
- In rails, action-mailer provides an easy way to add attachment file as
attachments['filename.jpg'] = File.read('/path/to/filename.jpg')
Links: [rails-guide-on-attchments(send attachments with email)][2] , [rails-attachments][3]
- Sending attachments via Postmark-api
require "open-uri" def send_refer_pt_request(params, attachment) # attachment -> url of file saved on S3 if attachment.present? mime_type = MIME::Types.type_for(attachment).first url_data = open(attachment).read() attachments["#{attachment.split('/').last}"] = { mime_type: mime_type, content: url_data } end mail( from:, to: , subject: "Refer Request", tag: "refer_request") end
Few Points to make sure while sending attachments:
- Previously, Postmark was not supporting attachments, so make sure that in your application you are using latest version of Postmark-rails gem.
Links: [Postmark-Blog][4] , [postmark-rails-gem][5]
Because, if you are using an old version of this gem, then it will send email without attachment but would not show any exception or any error for attachment not being sent , it would just exclude your attachment files.
gem ‘postmark-rails’, “~> 0.5.2”
-
Attachment size can be 10 MB at most.
-
Only allowed file types can be sent as attachments. [Supported-File-Types][6]
-
If you want to send a file from remote url, then you need to read that file before you add it as attachment.
require "open-uri" mime_type = MIME::Types.type_for(attachment).first url_data = open(attachment_url).read() attachments["#{file_name}"] = { mime_type: mime_type, content: url_data }
- Also it is recommended by Postmark, that if you want to send email with attachments, send your email from background job. [Check Here..][7]
[1]: http://knowbuddy.kiprosh-app.com/kyu_entries/send-email-from-application-via-postmark
[2]: http://guides.rubyonrails.org/action_mailer_basics.html#complete-list-of-action-mailer-methods
[3]: http://api.rubyonrails.org/classes/ActionMailer/Base.html#label-Attachments
[4]: http://blog.postmarkapp.com/post/927675495/attachments-finally-here
[5]: https://github.com/wildbit/postmark-rails/issues/25
[6]: http://developer.postmarkapp.com/developer-build.html#attachments
[7]: http://blog.postmarkapp.com/post/927675495/attachments-finally-here