instance method
attachments
Ruby on Rails 3.1.12
Since v3.0.20Signature
attachments()
Allows you to add attachments to an email, like so:
mail.attachments['filename.jpg'] = File.read('/path/to/filename.jpg')
If you do this, then Mail will take the file name and work out the mime type set the Content-Type, Content-Disposition, Content-Transfer-Encoding and base64 encode the contents of the attachment all for you.
You can also specify overrides if you want by passing a hash instead of a string:
mail.attachments['filename.jpg'] = {:mime_type => 'application/x-gzip',
:content => File.read('/path/to/filename.jpg')}
If you want to use a different encoding than Base64, you can pass an encoding in, but then it is up to you to pass in the content pre-encoded, and don’t expect Mail to know how to decode this data:
file_content = SpecialEncode(File.read('/path/to/filename.jpg'))
mail.attachments['filename.jpg'] = {:mime_type => 'application/x-gzip',
:encoding => 'SpecialEncoding',
:content => file_content }
You can also search for specific attachments:
# By Filename
mail.attachments['filename.jpg'] # => Mail::Part object or nil
# or by index
mail.attachments[0] # => Mail::Part (first attachment)
Source
# File actionmailer/lib/action_mailer/base.rb, line 533
def attachments
@_message.attachments
end
Defined in actionmailer/lib/action_mailer/base.rb line 533
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in ActionMailer::Base