0

我无法从本地主机发送电子邮件。这是我的代码。起初我是生成邮件程序 UserMailer。环境.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'
 }

邮件程序/用户邮件程序:

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>

但是有些东西是错的,我不知道究竟是什么......

4

1 回答 1

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
于 2013-04-26T14:25:14.123 回答