views:

232

answers:

4

I'm try learn about email in rails. I'm developing something on localhost. Is it possible to send an email from localhost to say a normal mail account like gmail? Do I have a install a mail server? I've just got a standard rails installation at the moment for development.

+1  A: 

You can set up ActionMailer to use Gmail's SMTP server using something like this in config/environment.rb:

ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.server_settings = {
    :address        => 'smtp.gmail.com',
    :domain         => '<your domain>',
    :port           => 587,
    :user_name      => '<your gmail>',
    :password       => '<your password>',
    :authentication => :plain
}
Mikael S
thanks, so if I'm trying to send an email from localhost (not make the sender a regular email account like gmail) to a regular mailbox like gmail what do I put in the :domain, :user_name, :password and : authentication fields?
conspirisi
This in only the setup for which mail server to use. The from address, to address, subject and so on are changed elsewhere. See the examples in the documentation for ActionMailer (http://api.rubyonrails.org/classes/ActionMailer/Base.html) on how to do this.
Mikael S
A: 

You can send it from localhost, you can even set the sender as a 'real' mailbox e.g. [email protected].

However, some (or say most) servers will not accept this mail as part of their spam blocking strategy (inability to verify the sender identity). However, In the past, I have had something similar with python which worked on gmail.

so good luck ;-)

Tzury Bar Yochay
A: 

Have a look at ActionMailer. In RAILS_ROOT/config/environment/ , there is a file for different environments (development, test, production) the configurable settings go in these files

You specify the delivery_method like this,

ActionMailer::Base.delivery_method = :sendmail

or if you want

ActionMailer::Base.delivery_method = :smtp

A detailed example of the settings has been posted by Mikael S

HTH

Anand
A: 

If I understand your situation correctly, you want to send an email from your local computer using a custom email address such as [email protected]. If you already registered the domain name for your email account ( mycompany.com ) is very likely that the company that is hosting your website, also has a POP/SMTP server. If so, you can use Mikael S's sample and change the address parameter to your Hosting company's smtp address and use your hosting company's username/password.

If you have not register your custom domain or don't have a hosting provider, you can install a free email server in your local computer. If you use WindowsXP, you can add the IIS email server by going to add/remove programs->windows features. If you are using Linux, you can use any of the email servers available in the repositories. Once you install your local email server you will use Mikael S's sample code and use 127.0.0.1 or localhost in the address field. If you are using WindowsXP's email server, I think you don't have to enter username/password.

Hope it helps you.

Juan Tarquino