Rails 联系表不发送电子邮件

帮帮我

我正在尝试在我的应用程序的页脚中设置一个简单的联系表单。表单验证有效,但我没有收到电子邮件。

我遵循了本教程,但更改了一些内容,因为联系表单在页脚中,而不是messages/new.html.erb在我的应用程序中不存在的页面中。

我的路由文件有以下内容:

post 'contact-me', to: 'messages#create', as: 'create_message'

这是消息模型(无迁移)、控制器和邮件程序:

# message.rb
class Message
  include ActiveModel::Model
  attr_accessor :name, :email, :body
  validates :name, :email, :body, presence: true
end

# messages_controller.rb
class MessagesController < ApplicationController

  def create
    message_params = params.require(:message).permit(:name, :email, :body)
    @message = Message.new message_params

    if @message.valid?
      MessageMailer.contact_me(@message).deliver_now
      flash[:success] = "Message sent"
      redirect_to :back
    else
      flash[:danger] = "Message not sent. Please fill in all fields."
      redirect_to :back
    end
  end

end

# message_mailer.rb
class MessageMailer < ApplicationMailer

  def contact_me(message)
    @body = message.body

    # Note: my actual email is here, I just omitted it for this question
    mail to: "<my-email>", from: message.email
  end

end

由于联系表单在视图的每一页上,我在 ApplicationController 中做了新的操作:

class ApplicationController < ActionController::Base
  # Prevent CSRF attacks by raising an exception.
  # For APIs, you may want to use :null_session instead.
  protect_from_forgery with: :exception
  include SessionsHelper

  before_filter :get_message

  def get_message
    @message = Message.new
  end

end

_footer.html.erb 部分呈现联系表单:

# shared/_contact_form.html.erb
<%= form_for @message, url: create_message_url do |f| %>
  <%= notice %>
  <%= render 'shared/error_messages', object: f.object %>

  <%= f.text_field :name, placeholder: 'name' %>
  <%= f.email_field :email, placeholder: 'email' %>
  <%= f.text_area :body, placeholder: 'body' %>
  <%= f.submit 'Send' %>
<% end %>
18

config/application.rb文件中添加以下 smtp 设置

  config.action_mailer.default_url_options = { :host => 'http://www.xxxx.com' }
  config.action_mailer.delivery_method = :smtp

  config.action_mailer.smtp_settings = {
      :address => "smtp.gmail.com",
      :port => 587,
      :domain => "gmail.com",
      :user_name => "[email protected]",
      :password => "xxxxxxxx",
      :authentication => "plain",
      :enable_starttls_auto => true
  }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Rails 4 Mailer不发送电子邮件

来自分类Dev

Rails应用程序不发送电子邮件

来自分类Dev

如果用Rails ActionMailer清空电子邮件,如何不发送电子邮件

来自分类Dev

仅在产品中发送电子邮件,而在Rails开发中则不发送

来自分类Dev

动作邮件程序-使用Ruby on Rails通过联系表单发送电子邮件

来自分类Dev

Rails 4.2-Sidekiq在开发中不发送电子邮件

来自分类Dev

Sidekiq和Rails 4 Actionmailer从不发送电子邮件

来自分类Dev

Ruby on Rails的Cloud9不发送电子邮件

来自分类Dev

Rails设计在开发中不发送电子邮件确认

来自分类Dev

Ruby on Rails的Cloud9不发送电子邮件

来自分类Dev

Rails设计在开发中不发送电子邮件确认

来自分类Dev

Rails 5 联系我表单不通过 heroku 使用 sendgrid 发送电子邮件

来自分类Dev

Rails-单击按钮发送电子邮件

来自分类Dev

Rails 4,不使用sendmail发送电子邮件

来自分类Dev

Rails通过GET发送电子邮件

来自分类Dev

在概念验证Rails应用中发送电子邮件

来自分类Dev

使用Shoppe gem + Rails发送电子邮件

来自分类Dev

Rails 重新发送电子邮件激活

来自分类Dev

Rails 测试根据请求规范发送电子邮件

来自分类Dev

Rails 通过弹出窗口发送电子邮件

来自分类Dev

PHP的联系方式不发送电子邮件

来自分类Dev

PHP联系表格不发送电子邮件

来自分类Dev

使用2封电子邮件和凭据在Rails中发送电子邮件

来自分类Dev

在Rails中发送电子邮件后存储邮件程序类和方法

来自分类Dev

在Rails中使用发送网格批量发送电子邮件

来自分类Dev

在Rails中使用发送网格批量发送电子邮件

来自分类Dev

如何从Drupal 7的联系表发送电子邮件?

来自分类Dev

rkhunter不发送电子邮件

来自分类Dev

PHPmailer不发送电子邮件

Related 相关文章

  1. 1

    Rails 4 Mailer不发送电子邮件

  2. 2

    Rails应用程序不发送电子邮件

  3. 3

    如果用Rails ActionMailer清空电子邮件,如何不发送电子邮件

  4. 4

    仅在产品中发送电子邮件,而在Rails开发中则不发送

  5. 5

    动作邮件程序-使用Ruby on Rails通过联系表单发送电子邮件

  6. 6

    Rails 4.2-Sidekiq在开发中不发送电子邮件

  7. 7

    Sidekiq和Rails 4 Actionmailer从不发送电子邮件

  8. 8

    Ruby on Rails的Cloud9不发送电子邮件

  9. 9

    Rails设计在开发中不发送电子邮件确认

  10. 10

    Ruby on Rails的Cloud9不发送电子邮件

  11. 11

    Rails设计在开发中不发送电子邮件确认

  12. 12

    Rails 5 联系我表单不通过 heroku 使用 sendgrid 发送电子邮件

  13. 13

    Rails-单击按钮发送电子邮件

  14. 14

    Rails 4,不使用sendmail发送电子邮件

  15. 15

    Rails通过GET发送电子邮件

  16. 16

    在概念验证Rails应用中发送电子邮件

  17. 17

    使用Shoppe gem + Rails发送电子邮件

  18. 18

    Rails 重新发送电子邮件激活

  19. 19

    Rails 测试根据请求规范发送电子邮件

  20. 20

    Rails 通过弹出窗口发送电子邮件

  21. 21

    PHP的联系方式不发送电子邮件

  22. 22

    PHP联系表格不发送电子邮件

  23. 23

    使用2封电子邮件和凭据在Rails中发送电子邮件

  24. 24

    在Rails中发送电子邮件后存储邮件程序类和方法

  25. 25

    在Rails中使用发送网格批量发送电子邮件

  26. 26

    在Rails中使用发送网格批量发送电子邮件

  27. 27

    如何从Drupal 7的联系表发送电子邮件?

  28. 28

    rkhunter不发送电子邮件

  29. 29

    PHPmailer不发送电子邮件

热门标签

归档