Ruby On Rails.How发送电子邮件?

时间:2013-04-26 14:14:01

标签: ruby-on-rails smtp

我无法发送来自localhost的电子邮件。这是我的代码。 起初我是生成邮件用户UserMailer。 enviroment.rb:

config.action_mailer.delivery_method = :smtp

config.action_mailer.smtp_settings = {
 :adress => 'johnoggy3010@gmail.com',
 :port => 25,
 :authentication => :login,
 :user_name => 'johnoggy3010',
 :password => 'secret'
 }

寄件人/ user_mailer文件:

class UserMailer < ActionMailer::Base

def mail(user)
rexipients 'rexipient@gmail.com'
from 'johnoggy3010@gmail.com'
subject = "Hi"
body :user => user
end 
end

我的控制员:

UserMailer.deliver_mail(params[:name])

和user_mailer / welcome_email.html.erb中的模板:

<h1>Welcome to example.com,<%= user %> </h1>

但是事情是错的,我不知道是什么特别......

1 个答案:

答案 0 :(得分:1)

使您的设置正确。这是使用gmail smtp的代码:

  config.action_mailer.raise_delivery_errors = true
  config.action_mailer.default_url_options = { :host => 'your host' }
  config.action_mailer.delivery_method = :smtp
  config.action_mailer.smtp_settings = {
  :address        => 'smtp.gmail.com',
  :port           => '587',
  :authentication => :plain,
  :user_name      => 'your full email addess like abc@gmail.com',
  :password       => 'your account password',
  :domain         => 'your domain'
  }

在您的development.rb中写下以下行,看看是否有任何错误发生:

config.action_mailer.raise_delivery_errors = true

在邮件程序中首先尝试发送这封简单的电子邮件:

  def deliver_oggymail()    
    mail(:to => "rexipient@gmail.com", :subject => ="hi")
  end

在您的控制器中

UserMailer.deliver_oggymail().deliver