Ruby on rails 3 Rails Cast:ActionMailer电子邮件未发送到收件箱
服务器声明电子邮件已发送到正确的地址,但我的收件箱中没有收到邮件 我的Setup\u mail.rb文件Ruby on rails 3 Rails Cast:ActionMailer电子邮件未发送到收件箱,ruby-on-rails-3,actionmailer,railscasts,Ruby On Rails 3,Actionmailer,Railscasts,服务器声明电子邮件已发送到正确的地址,但我的收件箱中没有收到邮件 我的Setup\u mail.rb文件 ActionMailer::Base.smtp_settings ={ :address => "smtp.gmail.com", :port => 587, :domain => "gmail.com", :user_name => "my_user_name@gmail.com",
ActionMailer::Base.smtp_settings ={
:address => "smtp.gmail.com",
:port => 587,
:domain => "gmail.com",
:user_name => "my_user_name@gmail.com",
:password => "my_password",
:authentication => "Plain",
:enable_starttls_auto => true
}
我的development.rb
文件是:
# Don't care if the mailer can't send
config.action_mailer.raise_delivery_errors = true
config.action_mailer.perform_deliveries = true #default value
config.action_mailer.delivery_method = :smtp #default value
config.action_mailer.delivery_method = :smtp
我的test.rb
文件是:
# Don't care if the mailer can't send
config.action_mailer.raise_delivery_errors = true
config.action_mailer.perform_deliveries = true #default value
config.action_mailer.delivery_method = :smtp #default value
config.action_mailer.delivery_method = :smtp
我尝试了多种变体,但都迷路了。我在Windows7机器上运行。我正在运行Ruby 1.8.7和Rails 3.0.7
有人能帮忙吗
以下是我的创建方法:
def create
@user = User.new(params[:user])
if @user.save
UserMailer.registration_confirmation(@user).deliver
sign_in @user
redirect_to @user, :flash => { :success => "Welcome to the Sample App!" }
else
@title = "Sign up"
render 'new'
end
end
我的用户_mailer.rb
类UserMailerdefault :from => "my_user_name@gmail.com"
def registration_confirmation(user)
mail(:to => user.email, :subject => "Thanks for registering")
end
end
尝试将身份验证从字符串更改为符号
ActionMailer::Base.smtp_settings ={
:address => "smtp.gmail.com",
:port => 587,
:domain => "gmail.com",
:user_name => "my_user_name@gmail.com",
:password => "my_password",
:authentication => :plain,
:enable_starttls_auto => true
}
尝试将身份验证从字符串更改为符号
ActionMailer::Base.smtp_settings ={
:address => "smtp.gmail.com",
:port => 587,
:domain => "gmail.com",
:user_name => "my_user_name@gmail.com",
:password => "my_password",
:authentication => :plain,
:enable_starttls_auto => true
}
您应该检查我的用户_name@gmail.com实际上已经发送了电子邮件。我们过去在通过Gmail的SMTP服务器发送验证电子邮件时遇到过这样的问题,因为批量发送最终根本不发送 我建议您登录我的用户_name@gmail.com并确认没有问题,邮件已发送
如果没有,您可能需要尝试发送电子邮件之类的服务。您应该检查我的用户_name@gmail.com实际上已经发送了电子邮件。我们过去在通过Gmail的SMTP服务器发送验证电子邮件时遇到过这样的问题,因为批量发送最终根本不发送 我建议您登录我的用户_name@gmail.com并确认没有问题,邮件已发送
如果没有,您可能需要尝试发送电子邮件之类的服务。查看您的服务器。我敢肯定,你可以在你的日志中看到,它实际上是在试图发送邮件 问题是谷歌不信任你的本地IP地址,你的邮件也不会被发送(甚至不会发送到垃圾邮件目录)。除了使用白名单服务器,没有办法解决这个问题
如果您在生产环境中尝试应用程序,这应该正常工作,例如,将应用程序部署到heroku进行测试。查看您的服务器。我敢肯定,你可以在你的日志中看到,它实际上是在试图发送邮件 问题是谷歌不信任你的本地IP地址,你的邮件也不会被发送(甚至不会发送到垃圾邮件目录)。除了使用白名单服务器,没有办法解决这个问题
如果您在生产环境中尝试应用程序,这应该正常工作,例如,将应用程序部署到heroku进行测试。尝试在最后输入
。交付
。这为我解决了这个问题:
mail(:to .....).deliver!
试着把
放进去。在最后交付。这为我解决了这个问题:
mail(:to .....).deliver!
我也有同样的问题,我可以看到在我的控制台中邮件被发送了,但在收件箱中什么也没有出现,一件事是你可以在白名单服务器上部署你的应用程序,比如heroku,或者,如果您想通过本地浏览器查看仅用于测试的应用程序,只需在浏览器中启用不太安全的应用程序,您就应该能够在收件箱中查看该电子邮件
我也遇到了同样的问题,我可以看到在我的控制台中发送了邮件,但在收件箱中什么也没有出现,一件事是你可以将你的应用程序部署在像heroku这样的白名单服务器上,或者,如果您想通过本地浏览器查看仅用于测试的应用程序,只需在浏览器中启用不太安全的应用程序,您就应该能够在收件箱中查看该电子邮件
您能发布该邮件特定的模型和控制器的代码吗?我认为谷歌要求您使用SSL/TLS。@caley Woods::enable\u starttls\u auto=>true表示使用SSL/TLS@安德烈:谢谢,我漏掉了那一行。你能发布这个邮件特定的模型和控制器的代码吗?我想谷歌要求你使用SSL/TLS。@caley Woods::enable_starttls_auto=>true意味着SSL/TLS被使用了@安德烈:谢谢,我错过了那一行。我更改了身份验证,电子邮件没有进入收件箱。谢谢你的建议。@user7995很有趣。rails指南说它需要是一个符号:plain
,但在他们的示例中,他们使用了“plain”字符串。我将其部署到Heroku,解决了这个问题。但是,这在开发或测试中仍然不起作用。我更改了身份验证,电子邮件没有进入收件箱。谢谢你的建议。@user7995很有趣。rails指南说它需要是一个符号:plain
,但在他们的示例中,他们使用了“plain”字符串。我将其部署到Heroku,解决了这个问题。但是,这在开发或测试中仍然不起作用。这是正确的。我部署到Heroku,邮件收发员工作。谢谢你提供的信息。是的,我检查了我的/var/log/mail.log,找到了根本原因。谢谢!这是正确的。我部署到Heroku,邮件收发员工作。谢谢你提供的信息。是的,我检查了我的/var/log/mail.log,找到了根本原因。谢谢!