views:

45

answers:

1

I am trying to send a sample email from my rails application.

this is what I've done so far:

rails gmailtest 
cd gmailtest
script/plugin install git://github.com/collectiveidea/action_mailer_optional_tls.git

Then I placed following in my environment.rb file (after the end)

ActionMailer::Base.smtp_settings = {
  :address        => "smtp.gmail.com",
  :port           => 587,
  :domain         => "[email protected]",
  :user_name      => "[email protected]",
  :password       => "mypwd",
  :authentication => :plain
}


script/generate mailer UserMailer

Then placed following in models\UserMailer:

class UserMailer < ActionMailer::Base
 def welcome_email(email)
    recipients    email
    from          "My Awesome Site Notifications <[email protected]>"
    subject       "Welcome to My Awesome Site"
    sent_on       Time.now
    #body          {:user => "", :url => "http://example.com/login"}
  end  
end 

Placed following in views\user_mailer\welcome_email.text.html.erb

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
  </head>
  <body>
    <h1>Welcome to example.com, </h1>
    <p>
      You have successfully signed up to example.com, and your username is:.<br/>
      To login to the site, just follow this link:.
    </p>
    <p>Thanks for joining and have a great day!</p>
  </body>
</html>

Tried sending email!

>> UserMailer.deliver_welcome_email("[email protected]")
=> #<TMail::Mail port=#<TMail::StringPort:id=0x4bf7c42> bodyport=#<TMail::StringPort:id=0x4bd4c1a>>

Now I don't know whether the setup is working or not?? can I send a sample email from command prompt (script/console) to make sure that the setup is working?

Also in the domain section I just have my email. Is that ok or do I need to have a domain from google?

It does not send an email

+1  A: 

Yes.

script/console
UserMailer.deliver_welcome_email("[email protected]")

Should send the email (if all your settings/code is correct).

nicholasklick