Send email with attachment in Ruby
I need to send an email with an attachment via Ruby.
Been searching around but haven't found any simple script example to do this.
Closest I've found is ActionMailer but that seems to require a bunch of other scrip开发者_如何学编程ts to to run. (NOTE: I am not using Ruby on Rails)
Have you checked out Mail? That is what the new ActionMailer API in Rails 3 is built upon.
"Mail is an internet library for Ruby that is designed to handle emails generation, parsing and sending in a simple, rubyesque manner."
Here comes a quick example from the docs:
require 'mail'
@mail = Mail.new
file_data = File.read('path/to/myfile.pdf')
@mail.attachments['myfile.pdf'] = { :mime_type => 'application/x-pdf',
:content => file_data }
Update: Or even more simply:
@mail = Mail.new
@mail.add_file("/path/to/file.jpg")
Sending Email or Email with any type of attachment has become more simple with the "mail" gem installation.
Step:1 Install "mail" gem
Step:2 In the ruby file maintain the syntax given below:
require 'mail'
def mailsender
Mail.defaults do
delivery_method :smtp,{ address: "<smtp_address>",openssl_verify_mode: "none" }
end
Mail.deliver do
from 'from_mail_id'
to 'to_mail_id'
subject 'subject_to_be_sent'
# body File.read('body.txt')
body 'body.txt'
add_file '<file_location>/Word Doc.docx'
add_file '<file_location>/Word Doc.doc'
end
end
Step:3 now Just call the method in the step definition.
Full documentation: here
require 'mail'
Mail.deliver do
from "bob@example.com"
to "alice@example.com"
subject "Email with attachment"
body "Hello world"
add_file "/path/to/file"
end
精彩评论