Note: This post was originally posted on my old blog on 8th of June 2010
I'm working on a small web app in my spare time in which I need to send out emails with attachments in Ruby on Rails... First step is to actually send an email... I wanted to do this using my Gmail account so that any responses that might come back would be into my everyday email account. I also wanted it to use SSL/TLS... This whole thing was a bit difficult to figure out especially with the smtp_tls.rb examples on the net. I got a bit confused...For Ruby 1.8.6 (and maybe older) see here
This is the code that I have come up with for Ruby 1.8.7 in the end...
require 'net/smtp'
smtp = Net::SMTP.new 'smtp.gmail.com', 587
smtp.enable_starttls
message = <<EMAIL_MESSAGE
From: John Smith <example_from@gmail.com>
To: Joe Smith <example_to@gmail.com>
Subject: Just a little test...
This is test...
EMAIL_MESSAGE
smtp.start('smtp.gmail.com',
'gmail_username_here','password_here', :plain ) do |smpt|
smtp.send_message message,
'example_from@gmail.com',
'example_to@gmail.com'
endSome notes:- In Ruby 1.8.7 you don't have to install the smtp_tls gem like you did in prior versions as this is included in the net/smtp.rb file already. you just have to set smtp.enable_starttls before you call start(..)
- You don't have to put the @gmail.com part on the end of you email in the gmail_username_here place hold.
- The body of the message has to be constructed fully, you can't call functions to build it... There are a couple of other gems that you can use to make this a little nicer. Some things to look at include : mail, TMail for example, which may make this a bit cleaner.
No comments:
Post a Comment