我无法发送来自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>
但是事情是错的,我不知道是什么特别......
答案 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