Send email from rails console

Max Williams picture Max Williams · Jul 16, 2010 · Viewed 41k times · Source

I'm trying to send out some mails from the console on my production server, and they're not going out. I can't work out why. I have just your standard email setup with sendmail. When i call the Mailer.deliver_ method i get this back:

#<TMail::Mail port=#<TMail::StringPort:id=0x3fe1c205dbcc> bodyport=#<TMail::StringPort:id=0x3fe1c2059e00>>

EDIT: Added some more info:

So, for example, i have this line in my controller when a new user signs up, to send them a "welcome" email:

 Mailer.deliver_signup(@user, request.host_with_port, params[:user][:password])

This works fine. I thought that i should be able to do the same thing from the console, eg

user = User.find(1)
Mailer.deliver_signup(user, "mydomainname.com", "password")

When i do this, i get the Tmail::StringPort object back, but the mail appears to not get sent out (i'm trying to send emails to myself to test this).

I'm on an ubuntu server in case that helps. thanks - max

Answer

jmgarnier picture jmgarnier · Oct 20, 2015

Quicker version:

ActionMailer::Base.mail(
  from: "[email protected]", 
  to: "[email protected]", 
  subject: "Test", 
  body: "Test"
).deliver_now